home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / X11R4 / cmds / X / ddx / pcf / diffs.2 < prev    next >
Encoding:
Text File  |  1989-10-11  |  67.1 KB  |  2,386 lines

  1. (Message server:128)
  2. Return-Path: erik@wsl.dec.com
  3. Received: from decwrl.dec.com by expo.lcs.mit.edu; Sat, 23 Sep 89 15:37:42 EDT
  4. Received: by decwrl.dec.com; id AA22731; Sat, 23 Sep 89 12:37:37 -0700
  5. Received: by westworld.pa.dec.com (5.57/4.7.34)
  6.     id AA13398; Sat, 23 Sep 89 12:38:55 PDT
  7. Message-Id: <8909231938.AA13398@westworld.pa.dec.com>
  8. To: keith@expo.lcs.mit.edu
  9. Subject: srvpcf.diffs
  10. Date: Sat, 23 Sep 89 12:38:53 PDT
  11. From: erik@wsl.dec.com
  12.  
  13. *** /a19c/R4-tape/mit/server/dix/Imakefile    Thu Apr 13 05:25:56 1989
  14. --- server/dix/Imakefile    Mon Sep 11 16:26:26 1989
  15. ***************
  16. *** 9,15 ****
  17.   
  18.    STD_DEFINES = ServerDefines
  19.    CDEBUGFLAGS = ServerCDebugFlags
  20. !     INCLUDES = -I. -I../include -I$(INCLUDESRC)
  21.    EXT_DEFINES = ExtensionDefines
  22.       LINTLIBS = ../ddx/snf/llib-lsnf.ln ../os/4.2bsd/llib-los.ln
  23.   
  24. --- 9,15 ----
  25.   
  26.    STD_DEFINES = ServerDefines
  27.    CDEBUGFLAGS = ServerCDebugFlags
  28. !     INCLUDES = -I. -I../include -I$(INCLUDESRC) -I$(FONTSRC)/include
  29.    EXT_DEFINES = ExtensionDefines
  30.       LINTLIBS = ../ddx/snf/llib-lsnf.ln ../os/4.2bsd/llib-los.ln
  31.   
  32. *** /a19c/R4-tape/mit/server/dix/cursor.c    Sun Jul 16 14:24:29 1989
  33. --- server/dix/cursor.c    Mon Sep 11 16:26:33 1989
  34. ***************
  35. *** 30,40 ****
  36.   #include "scrnintstr.h"
  37.   #include "dixstruct.h"
  38.   #include "cursorstr.h"
  39. - #include "dixfontstr.h"
  40.   #include "opaque.h"
  41.   
  42.   typedef struct _GlyphShare {
  43. !     FontPtr font;
  44.       unsigned short sourceChar;
  45.       unsigned short maskChar;
  46.       CursorBitsPtr bits;
  47. --- 30,42 ----
  48.   #include "scrnintstr.h"
  49.   #include "dixstruct.h"
  50.   #include "cursorstr.h"
  51.   #include "opaque.h"
  52. +  
  53. + #include "servermd.h"
  54. + #include "serverfont.h"
  55.   
  56.   typedef struct _GlyphShare {
  57. !     EncodedFontPtr font;
  58.       unsigned short sourceChar;
  59.       unsigned short maskChar;
  60.       CursorBitsPtr bits;
  61. ***************
  62. *** 167,173 ****
  63.       CursorPtr *ppCurs;
  64.       ClientPtr client;
  65.   {
  66. !     FontPtr  sourcefont, maskfont;
  67.       unsigned char   *srcbits;
  68.       unsigned char   *mskbits;
  69.       CursorMetricRec cm;
  70. --- 169,175 ----
  71.       CursorPtr *ppCurs;
  72.       ClientPtr client;
  73.   {
  74. !     EncodedFontPtr  sourcefont, maskfont;
  75.       unsigned char   *srcbits;
  76.       unsigned char   *mskbits;
  77.       CursorMetricRec cm;
  78. ***************
  79. *** 178,185 ****
  80.       ScreenPtr     pscr;
  81.       GlyphSharePtr pShare;
  82.   
  83. !     sourcefont = (FontPtr) LookupIDByType(source, RT_FONT);
  84. !     maskfont = (FontPtr) LookupIDByType(mask, RT_FONT);
  85.   
  86.       if (!sourcefont)
  87.       {
  88. --- 180,187 ----
  89.       ScreenPtr     pscr;
  90.       GlyphSharePtr pShare;
  91.   
  92. !     sourcefont = (EncodedFontPtr) LookupIDByType(source, RT_FONT);
  93. !     maskfont = (EncodedFontPtr) LookupIDByType(mask, RT_FONT);
  94.   
  95.       if (!sourcefont)
  96.       {
  97. ***************
  98. *** 343,349 ****
  99.       unsigned short    glyph;
  100.   {
  101.       CursorPtr     curs;
  102. !     FontPtr     cursorfont;
  103.       XID        fontID;
  104.   
  105.       fontID = FakeClientID(0);
  106. --- 345,351 ----
  107.       unsigned short    glyph;
  108.   {
  109.       CursorPtr     curs;
  110. !     EncodedFontPtr     cursorfont;
  111.       XID        fontID;
  112.   
  113.       fontID = FakeClientID(0);
  114. *** /a19c/R4-tape/mit/server/dix/gc.c    Thu Jul 20 13:13:58 1989
  115. --- server/dix/gc.c    Mon Sep 11 16:26:59 1989
  116. ***************
  117. *** 31,41 ****
  118.   #include "resource.h"
  119.   #include "gcstruct.h"
  120.   #include "pixmapstr.h"
  121. - #include "dixfontstr.h"
  122.   #include "scrnintstr.h"
  123.   #include "region.h"
  124.   
  125.   #include "dix.h"
  126.   
  127.   extern XID clientErrorValue;
  128.   
  129. --- 31,41 ----
  130.   #include "resource.h"
  131.   #include "gcstruct.h"
  132.   #include "pixmapstr.h"
  133.   #include "scrnintstr.h"
  134.   #include "region.h"
  135.   
  136.   #include "dix.h"
  137. + #include "serverfont.h"
  138.   
  139.   extern XID clientErrorValue;
  140.   
  141. ***************
  142. *** 256,268 ****
  143.           break;
  144.           case GCFont:
  145.                 {
  146. !         FontPtr    pFont;
  147.   
  148.   
  149.           if(fPointer)
  150. !             pFont = (FontPtr) *pval;
  151.           else
  152. !             pFont = (FontPtr)LookupIDByType((CARD32)*pval, RT_FONT);
  153.   
  154.           if (pFont)
  155.           {
  156. --- 256,268 ----
  157.           break;
  158.           case GCFont:
  159.                 {
  160. !         EncodedFontPtr    pFont;
  161.   
  162.   
  163.           if(fPointer)
  164. !             pFont = (EncodedFontPtr) *pval;
  165.           else
  166. !             pFont = (EncodedFontPtr)LookupIDByType((CARD32)*pval, RT_FONT);
  167.   
  168.           if (pFont)
  169.           {
  170. ***************
  171. *** 484,490 ****
  172.       int        *pStatus;
  173.   {
  174.       register GCPtr pGC;
  175. !     extern FontPtr defaultFont;
  176.   #ifdef DEBUG
  177.       void     (**j)();
  178.   #endif /* DEBUG */
  179. --- 484,490 ----
  180.       int        *pStatus;
  181.   {
  182.       register GCPtr pGC;
  183. !     extern EncodedFontPtr defaultFont;
  184.   #ifdef DEBUG
  185.       void     (**j)();
  186.   #endif /* DEBUG */
  187. ***************
  188. *** 704,710 ****
  189.               break;
  190.           if (pgcDst->font)
  191.               CloseFont(pgcDst->font, (Font)0);
  192. !         if ((pgcDst->font = pgcSrc->font) != NullFont)
  193.               (pgcDst->font)->refcnt++;
  194.           break;
  195.           case GCSubwindowMode:
  196. --- 704,710 ----
  197.               break;
  198.           if (pgcDst->font)
  199.               CloseFont(pgcDst->font, (Font)0);
  200. !         if ((pgcDst->font = pgcSrc->font) != NullEncodedFont)
  201.               (pgcDst->font)->refcnt++;
  202.           break;
  203.           case GCSubwindowMode:
  204. ***************
  205. *** 834,840 ****
  206.       unsigned depth;
  207.   {
  208.       register GCPtr pGC;
  209. !     extern FontPtr defaultFont;
  210.   #ifdef DEBUG
  211.       void     (**j)();
  212.   #endif /* DEBUG */
  213. --- 834,840 ----
  214.       unsigned depth;
  215.   {
  216.       register GCPtr pGC;
  217. !     extern EncodedFontPtr defaultFont;
  218.   #ifdef DEBUG
  219.       void     (**j)();
  220.   #endif /* DEBUG */
  221. *** /a19c/R4-tape/mit/server/dix/globals.c    Tue Jul 18 15:18:55 1989
  222. --- server/dix/globals.c    Mon Sep 11 16:27:05 1989
  223. ***************
  224. *** 30,40 ****
  225.   #include "windowstr.h"
  226.   #include "scrnintstr.h"
  227.   #include "input.h"
  228. - #include "dixfont.h"
  229.   #include "site.h"
  230.   #include "dixstruct.h"
  231.   #include "os.h"
  232.   
  233.   ScreenInfo screenInfo;
  234.   KeybdCtrl defaultKeyboardControl = {
  235.       DEFAULT_KEYBOARD_CLICK,
  236. --- 30,41 ----
  237.   #include "windowstr.h"
  238.   #include "scrnintstr.h"
  239.   #include "input.h"
  240.   #include "site.h"
  241.   #include "dixstruct.h"
  242.   #include "os.h"
  243.   
  244. + #include "serverfont.h"
  245.   ScreenInfo screenInfo;
  246.   KeybdCtrl defaultKeyboardControl = {
  247.       DEFAULT_KEYBOARD_CLICK,
  248. ***************
  249. *** 77,84 ****
  250.   char *defaultTextFont = COMPILEDDEFAULTFONT;
  251.   char *defaultCursorFont = COMPILEDCURSORFONT;
  252.   char *rgbPath = RGB_DB;
  253. ! FontPtr defaultFont;   /* not declared in dix.h to avoid including font.h in
  254. !             every compilation of dix code */
  255.   CursorPtr rootCursor;
  256.   ClientPtr requestingClient;    /* XXX this should be obsolete now, remove? */
  257.   
  258. --- 78,85 ----
  259.   char *defaultTextFont = COMPILEDDEFAULTFONT;
  260.   char *defaultCursorFont = COMPILEDCURSORFONT;
  261.   char *rgbPath = RGB_DB;
  262. ! EncodedFontPtr defaultFont;   /* not declared in dix.h to avoid including 
  263. !                  font.h in every compilation of dix code */
  264.   CursorPtr rootCursor;
  265.   ClientPtr requestingClient;    /* XXX this should be obsolete now, remove? */
  266.   
  267. server/dix/main.c
  268. *** /tmp/,RCSt1a13006    Sat Sep 23 11:51:31 1989
  269. --- main.c    Fri Sep 22 12:06:09 1989
  270. ***************
  271. *** 51,57 ****
  272.   xConnSetupPrefix connSetupPrefix;
  273.   
  274.   extern WindowPtr *WindowTable;
  275. ! extern FontPtr defaultFont;
  276.   
  277.   extern void SetInputCheck();
  278.   extern void InitProcVectors();
  279. --- 51,57 ----
  280.   xConnSetupPrefix connSetupPrefix;
  281.   
  282.   extern WindowPtr *WindowTable;
  283. ! extern EncodedFontPtr defaultFont;
  284.   
  285.   extern void SetInputCheck();
  286.   extern void InitProcVectors();
  287. ***************
  288. *** 228,234 ****
  289.       if (InitAndStartDevices(argc, argv) != Success)
  290.           FatalError("failed to initialize core devices");
  291.   
  292. !     if (SetDefaultFontPath(defaultFontPath) != Success)
  293.           ErrorF("failed to set default font path '%s'", defaultFontPath);
  294.       if (!SetDefaultFont(defaultTextFont))
  295.           FatalError("could not open default font '%s'", defaultTextFont);
  296. --- 228,234 ----
  297.       if (InitAndStartDevices(argc, argv) != Success)
  298.           FatalError("failed to initialize core devices");
  299.   
  300. !     if (fpSetDefaultFontPath(defaultFontPath) != Success)
  301.           ErrorF("failed to set default font path '%s'", defaultFontPath);
  302.       if (!SetDefaultFont(defaultTextFont))
  303.           FatalError("could not open default font '%s'", defaultTextFont);
  304. ***************
  305. *** 259,265 ****
  306.       xfree(WindowTable);
  307.   
  308.           CloseFont(defaultFont, (Font)0);
  309. !         defaultFont = (FontPtr)NULL;
  310.   
  311.       if (dispatchException & DE_TERMINATE)
  312.       {
  313. --- 259,265 ----
  314.       xfree(WindowTable);
  315.   
  316.           CloseFont(defaultFont, (Font)0);
  317. !         defaultFont = (EncodedFontPtr)NULL;
  318.   
  319.       if (dispatchException & DE_TERMINATE)
  320.       {
  321. *** /a19c/R4-tape/mit/server/dix/glyphcurs.c    Mon Jul  3 10:28:31 1989
  322. --- server/dix/glyphcurs.c    Mon Sep 11 16:27:15 1989
  323. ***************
  324. *** 27,34 ****
  325.   #include "X.h"
  326.   #include "Xmd.h"
  327.   #include "Xproto.h"
  328. - #include "dixfontstr.h"
  329. - #include "fontstruct.h"
  330.   #include "scrnintstr.h"
  331.   #include "gcstruct.h"
  332.   #include "resource.h"
  333. --- 27,32 ----
  334. ***************
  335. *** 38,43 ****
  336. --- 36,42 ----
  337.   #include "opaque.h"
  338.   #include "servermd.h"
  339.   
  340. + #include "serverfont.h"
  341.   
  342.   /*
  343.       get the bits out of the font in a portable way.  to avoid
  344. ***************
  345. *** 52,58 ****
  346.   
  347.   int
  348.   ServerBitsFromGlyph(pfont, ch, cm, ppbits)
  349. !     FontPtr    pfont;
  350.       unsigned short ch;
  351.       register CursorMetricPtr cm;
  352.       unsigned char **ppbits;
  353. --- 51,57 ----
  354.   
  355.   int
  356.   ServerBitsFromGlyph(pfont, ch, cm, ppbits)
  357. !     EncodedFontPtr    pfont;
  358.       unsigned short ch;
  359.       register CursorMetricPtr cm;
  360.       unsigned char **ppbits;
  361. ***************
  362. *** 120,134 ****
  363.   
  364.   Bool
  365.   CursorMetricsFromGlyph( pfont, ch, cm)
  366. !     register FontPtr     pfont;
  367. !     unsigned        ch;
  368. !     register CursorMetricPtr cm;
  369.   {
  370.       register CharInfoPtr     pci;
  371.   
  372. !     if (   ch < pfont->pFI->chFirst
  373. !     || ch >= pfont->pFI->chFirst + n1dChars(pfont->pFI))
  374. !     return FALSE;
  375.       pci = ADDRXTHISCHARINFO(pfont, ch);
  376.       cm->width = pci->metrics.rightSideBearing - pci->metrics.leftSideBearing;
  377.       cm->height = pci->metrics.descent + pci->metrics.ascent;
  378. --- 119,138 ----
  379.   
  380.   Bool
  381.   CursorMetricsFromGlyph( pfont, ch, cm)
  382. !     register EncodedFontPtr     pfont;
  383. !     unsigned            ch;
  384. !     register CursorMetricPtr    cm;
  385.   {
  386.       register CharInfoPtr     pci;
  387. +     int                row,col;
  388.   
  389. !     row=    (ch>>8)&0xff;
  390. !     col=    (ch&0xff);
  391. !     if  ( (ch==NO_SUCH_CHAR) ||
  392. !       ( row < pfont->firstRow ) || ( row > pfont->lastRow ) ||
  393. !       ( col < pfont->firstCol ) || ( col > pfont->lastCol ) ) {
  394. !     return(FALSE);
  395. !     }
  396.       pci = ADDRXTHISCHARINFO(pfont, ch);
  397.       cm->width = pci->metrics.rightSideBearing - pci->metrics.leftSideBearing;
  398.       cm->height = pci->metrics.descent + pci->metrics.ascent;
  399. *** /a19c/R4-tape/mit/server/dix/swaprep.c    Mon Jul  3 16:50:59 1989
  400. --- server/dix/swaprep.c    Mon Sep 11 16:27:33 1989
  401. ***************
  402. *** 30,36 ****
  403.   #include "Xproto.h"
  404.   #include "misc.h"
  405.   #include "dixstruct.h"
  406. - #include "fontstruct.h"
  407.   #include "scrnintstr.h"
  408.   
  409.   void SwapVisual(), SwapConnSetup(), SwapWinRoot();
  410. --- 30,35 ----
  411. server/dix/dispatch.c
  412. *** /tmp/,RCSt1a13038    Sat Sep 23 11:52:34 1989
  413. --- dispatch.c    Fri Sep 22 16:29:15 1989
  414. ***************
  415. *** 28,37 ****
  416.   #define NEED_EVENTS
  417.   #include "Xproto.h"
  418.   #include "windowstr.h"
  419. - #include "fontstruct.h"
  420. - #include "dixfontstr.h"
  421.   #include "gcstruct.h"
  422. ! #include "osstruct.h"
  423.   #include "selection.h"
  424.   #include "colormapst.h"
  425.   #include "cursorstr.h"
  426. --- 28,35 ----
  427.   #define NEED_EVENTS
  428.   #include "Xproto.h"
  429.   #include "windowstr.h"
  430.   #include "gcstruct.h"
  431. ! #include "os.h"
  432.   #include "selection.h"
  433.   #include "colormapst.h"
  434.   #include "cursorstr.h"
  435. ***************
  436. *** 41,46 ****
  437. --- 39,46 ----
  438.   #include "servermd.h"
  439.   #include "extnsionst.h"
  440.   
  441. + #include "serverfont.h"
  442.   extern WindowPtr *WindowTable;
  443.   extern xConnSetupPrefix connSetupPrefix;
  444.   extern char *ConnectionInfo;
  445. ***************
  446. *** 1017,1023 ****
  447.   ProcOpenFont(client)
  448.       register ClientPtr client;
  449.   {
  450. !     FontPtr pFont;
  451.       REQUEST(xOpenFontReq);
  452.   
  453.       REQUEST_FIXED_SIZE(xOpenFontReq, stuff->nbytes);
  454. --- 1017,1023 ----
  455.   ProcOpenFont(client)
  456.       register ClientPtr client;
  457.   {
  458. !     EncodedFontPtr pFont;
  459.       REQUEST(xOpenFontReq);
  460.   
  461.       REQUEST_FIXED_SIZE(xOpenFontReq, stuff->nbytes);
  462. ***************
  463. *** 1037,1048 ****
  464.   ProcCloseFont(client)
  465.       register ClientPtr client;
  466.   {
  467. !     FontPtr pFont;
  468.       REQUEST(xResourceReq);
  469.   
  470.       REQUEST_SIZE_MATCH(xResourceReq);
  471. !     pFont = (FontPtr)LookupIDByType(stuff->id, RT_FONT);
  472. !     if ( pFont != (FontPtr)NULL)    /* id was valid */
  473.       {
  474.           FreeResource(stuff->id, RT_NONE);
  475.       return(client->noClientException);
  476. --- 1037,1048 ----
  477.   ProcCloseFont(client)
  478.       register ClientPtr client;
  479.   {
  480. !     EncodedFontPtr pFont;
  481.       REQUEST(xResourceReq);
  482.   
  483.       REQUEST_SIZE_MATCH(xResourceReq);
  484. !     pFont = (EncodedFontPtr)LookupIDByType(stuff->id, RT_FONT);
  485. !     if ( pFont != (EncodedFontPtr)NULL)    /* id was valid */
  486.       {
  487.           FreeResource(stuff->id, RT_NONE);
  488.       return(client->noClientException);
  489. ***************
  490. *** 1059,1071 ****
  491.       register ClientPtr client;
  492.   {
  493.       xQueryFontReply    *reply;
  494. !     FontPtr pFont;
  495.       register GC *pGC;
  496.       REQUEST(xResourceReq);
  497.   
  498.       REQUEST_SIZE_MATCH(xResourceReq);
  499.       client->errorValue = stuff->id;        /* EITHER font or gc */
  500. !     pFont = (FontPtr)LookupIDByType(stuff->id, RT_FONT);
  501.       if (!pFont)
  502.       {
  503.         /* can't use VERIFY_GC because it might return BadGC */
  504. --- 1059,1071 ----
  505.       register ClientPtr client;
  506.   {
  507.       xQueryFontReply    *reply;
  508. !     EncodedFontPtr pFont;
  509.       register GC *pGC;
  510.       REQUEST(xResourceReq);
  511.   
  512.       REQUEST_SIZE_MATCH(xResourceReq);
  513.       client->errorValue = stuff->id;        /* EITHER font or gc */
  514. !     pFont = (EncodedFontPtr)LookupIDByType(stuff->id, RT_FONT);
  515.       if (!pFont)
  516.       {
  517.         /* can't use VERIFY_GC because it might return BadGC */
  518. ***************
  519. *** 1079,1099 ****
  520.       }
  521.   
  522.       {
  523. !     CharInfoPtr    pmax = pFont->pInkMax;
  524. !     CharInfoPtr    pmin = pFont->pInkMin;
  525.       int        nprotoxcistructs;
  526.       int        rlength;
  527.   
  528.       nprotoxcistructs = (
  529. !        pmax->metrics.rightSideBearing == pmin->metrics.rightSideBearing &&
  530. !        pmax->metrics.leftSideBearing == pmin->metrics.leftSideBearing &&
  531. !        pmax->metrics.descent == pmin->metrics.descent &&
  532. !        pmax->metrics.ascent == pmin->metrics.ascent &&
  533. !        pmax->metrics.characterWidth == pmin->metrics.characterWidth) ?
  534. !         0 : n2dChars(pFont->pFI);
  535.   
  536.       rlength = sizeof(xQueryFontReply) +
  537. !                  pFont->pFI->nProps * sizeof(xFontProp)  +
  538.                nprotoxcistructs * sizeof(xCharInfo);
  539.       reply = (xQueryFontReply *)ALLOCATE_LOCAL(rlength);
  540.       if(!reply)
  541. --- 1079,1099 ----
  542.       }
  543.   
  544.       {
  545. !     xCharInfo    *pmax = &pFont->inkMax;
  546. !     xCharInfo    *pmin = &pFont->inkMin;
  547.       int        nprotoxcistructs;
  548.       int        rlength;
  549.   
  550.       nprotoxcistructs = (
  551. !        pmax->rightSideBearing == pmin->rightSideBearing &&
  552. !        pmax->leftSideBearing == pmin->leftSideBearing &&
  553. !        pmax->descent == pmin->descent &&
  554. !        pmax->ascent == pmin->ascent &&
  555. !        pmax->characterWidth == pmin->characterWidth) ?
  556. !         0 : n2dChars(pFont);
  557.   
  558.       rlength = sizeof(xQueryFontReply) +
  559. !                  pFont->pCS->nProps * sizeof(xFontProp)  +
  560.                nprotoxcistructs * sizeof(xCharInfo);
  561.       reply = (xQueryFontReply *)ALLOCATE_LOCAL(rlength);
  562.       if(!reply)
  563. ***************
  564. *** 1118,1124 ****
  565.   {
  566.       REQUEST(xQueryTextExtentsReq);
  567.       xQueryTextExtentsReply reply;
  568. !     FontPtr pFont;
  569.       GC *pGC;
  570.       ExtentInfoRec info;
  571.       unsigned long length;
  572. --- 1118,1124 ----
  573.   {
  574.       REQUEST(xQueryTextExtentsReq);
  575.       xQueryTextExtentsReply reply;
  576. !     EncodedFontPtr pFont;
  577.       GC *pGC;
  578.       ExtentInfoRec info;
  579.       unsigned long length;
  580. ***************
  581. *** 1125,1131 ****
  582.   
  583.       REQUEST_AT_LEAST_SIZE(xQueryTextExtentsReq);
  584.           
  585. !     pFont = (FontPtr)LookupIDByType(stuff->fid, RT_FONT);
  586.       if (!pFont)
  587.       {
  588.           pGC = (GC *)LookupIDByType(stuff->fid, RT_GC);
  589. --- 1125,1131 ----
  590.   
  591.       REQUEST_AT_LEAST_SIZE(xQueryTextExtentsReq);
  592.           
  593. !     pFont = (EncodedFontPtr)LookupIDByType(stuff->fid, RT_FONT);
  594.       if (!pFont)
  595.       {
  596.           pGC = (GC *)LookupIDByType(stuff->fid, RT_GC);
  597. ***************
  598. *** 1173,1179 ****
  599.   
  600.       REQUEST_FIXED_SIZE(xListFontsReq, stuff->nbytes);
  601.   
  602. !     fpr = ExpandFontNamePattern( stuff->nbytes, 
  603.                    (char *) &stuff[1], stuff->maxNames);
  604.       if (!fpr)
  605.       return(BadAlloc);
  606. --- 1173,1179 ----
  607.   
  608.       REQUEST_FIXED_SIZE(xListFontsReq, stuff->nbytes);
  609.   
  610. !     fpr = fpExpandFontNamePattern( stuff->nbytes, 
  611.                    (char *) &stuff[1], stuff->maxNames);
  612.       if (!fpr)
  613.       return(BadAlloc);
  614. ***************
  615. *** 1189,1195 ****
  616.       bufptr = bufferStart = (char *)ALLOCATE_LOCAL(reply.length << 2);
  617.       if(!bufptr)
  618.       {
  619. !     FreeFontRecord(fpr);
  620.           return(BadAlloc);
  621.       }
  622.   
  623. --- 1189,1195 ----
  624.       bufptr = bufferStart = (char *)ALLOCATE_LOCAL(reply.length << 2);
  625.       if(!bufptr)
  626.       {
  627. !     fpFreeFontPath(fpr);
  628.           return(BadAlloc);
  629.       }
  630.   
  631. ***************
  632. *** 1203,1209 ****
  633.       }
  634.       WriteReplyToClient(client, sizeof(xListFontsReply), &reply);
  635.       (void)WriteToClient(client, stringLens + fpr->npaths, bufferStart);
  636. !     FreeFontRecord(fpr);
  637.       DEALLOCATE_LOCAL(bufferStart);
  638.       
  639.       return(client->noClientException);
  640. --- 1203,1209 ----
  641.       }
  642.       WriteReplyToClient(client, sizeof(xListFontsReply), &reply);
  643.       (void)WriteToClient(client, stringLens + fpr->npaths, bufferStart);
  644. !     fpFreeFontPath(fpr);
  645.       DEALLOCATE_LOCAL(bufferStart);
  646.       
  647.       return(client->noClientException);
  648. ***************
  649. *** 1215,1222 ****
  650.   {
  651.       register xListFontsWithInfoReply *reply, *nreply;
  652.       xListFontsWithInfoReply last_reply;
  653. !     FontRec font;
  654. !     FontInfoRec finfo;
  655.       register FontPathPtr fpaths;
  656.       register char **path;
  657.       register int n, *length;
  658. --- 1215,1223 ----
  659.   {
  660.       register xListFontsWithInfoReply *reply, *nreply;
  661.       xListFontsWithInfoReply last_reply;
  662. !     EncodedFontRec font,*pRtrnFont;
  663. !     Mask         unread;
  664. !     CharSetRec charset;
  665.       register FontPathPtr fpaths;
  666.       register char **path;
  667.       register int n, *length;
  668. ***************
  669. *** 1225,1237 ****
  670.   
  671.       REQUEST_FIXED_SIZE(xListFontsWithInfoReq, stuff->nbytes);
  672.   
  673. !     fpaths = ExpandFontNamePattern( stuff->nbytes,
  674.                       (char *) &stuff[1], stuff->maxNames);
  675.       if (!fpaths)
  676.       return(BadAlloc);
  677. !     font.pFI = &finfo;
  678. !     font.pInkMin = &finfo.minbounds;
  679. !     font.pInkMax = &finfo.maxbounds;
  680.       reply = (xListFontsWithInfoReply *)NULL;
  681.       curlength = 0;
  682.       for (n = fpaths->npaths, path = fpaths->paths, length = fpaths->length;
  683. --- 1226,1239 ----
  684.   
  685.       REQUEST_FIXED_SIZE(xListFontsWithInfoReq, stuff->nbytes);
  686.   
  687. !     fpaths = fpExpandFontNamePattern( stuff->nbytes,
  688.                       (char *) &stuff[1], stuff->maxNames);
  689.       if (!fpaths)
  690.       return(BadAlloc);
  691. !     bzero(&font,sizeof(font));
  692. !     bzero(&charset,sizeof(charset));
  693. !     font.pCS=  &charset;
  694.       reply = (xListFontsWithInfoReply *)NULL;
  695.       curlength = 0;
  696.       for (n = fpaths->npaths, path = fpaths->paths, length = fpaths->length;
  697. ***************
  698. *** 1238,1247 ****
  699.        --n >= 0;
  700.        path++, length++)
  701.       {
  702. !     if (!(DescribeFont(*path, *length, &finfo, &font.pFP)))
  703. !        continue;
  704.       rlength = sizeof(xListFontsWithInfoReply)
  705. !             + finfo.nProps * sizeof(xFontProp);
  706.       if (rlength > curlength)
  707.       {
  708.           nreply = (xListFontsWithInfoReply *)xrealloc(reply, rlength);
  709. --- 1240,1253 ----
  710.        --n >= 0;
  711.        path++, length++)
  712.       {
  713. !     charset.nChars=    0;
  714. !     pRtrnFont=    &font;
  715. !     unread= fpLookupFont(*path,*length,&pRtrnFont,
  716. !                FONT_ACCELERATORS|FONT_PROPERTIES,fosNaturalParams);
  717. !     if ((pRtrnFont==NullEncodedFont)||(unread!=0))
  718. !         continue;
  719.       rlength = sizeof(xListFontsWithInfoReply)
  720. !             + charset.nProps * sizeof(xFontProp);
  721.       if (rlength > curlength)
  722.       {
  723.           nreply = (xListFontsWithInfoReply *)xrealloc(reply, rlength);
  724. ***************
  725. *** 1262,1273 ****
  726.           reply->nReplies = n;
  727.           WriteReplyToClient(client, rlength, reply);
  728.           (void)WriteToClient(client, *length, *path);
  729. -         DEALLOCATE_LOCAL(reply);
  730.       }
  731. !     xfree(font.pFP);
  732.       }
  733.       xfree(reply);
  734. !     FreeFontRecord(fpaths);
  735.       bzero((char *)&last_reply, sizeof(xListFontsWithInfoReply));
  736.       last_reply.type = X_Reply;
  737.       last_reply.sequenceNumber = client->sequence;
  738. --- 1268,1281 ----
  739.           reply->nReplies = n;
  740.           WriteReplyToClient(client, rlength, reply);
  741.           (void)WriteToClient(client, *length, *path);
  742.       }
  743. !     if (pRtrnFont==&font) {
  744. !         fpUnloadFont(pRtrnFont,FALSE);
  745. !     }
  746. !     charset.tables= 0;
  747.       }
  748.       xfree(reply);
  749. !     fpFreeFontPath(fpaths);
  750.       bzero((char *)&last_reply, sizeof(xListFontsWithInfoReply));
  751.       last_reply.type = X_Reply;
  752.       last_reply.sequenceNumber = client->sequence;
  753. ***************
  754. *** 2017,2023 ****
  755.       REQUEST(xPolyTextReq);
  756.       register DrawablePtr pDraw;
  757.       register GC *pGC;
  758. !     register FontPtr pFont;
  759.   
  760.       int (* polyText)();
  761.       register unsigned char *pElt;
  762. --- 2025,2031 ----
  763.       REQUEST(xPolyTextReq);
  764.       register DrawablePtr pDraw;
  765.       register GC *pGC;
  766. !     register EncodedFontPtr pFont;
  767.   
  768.       int (* polyText)();
  769.       register unsigned char *pElt;
  770. ***************
  771. *** 2057,2063 ****
  772.            | ((Font)*(pElt+3)) << 8
  773.            | ((Font)*(pElt+2)) << 16
  774.            | ((Font)*(pElt+1)) << 24;
  775. !         pFont = (FontPtr)LookupIDByType(fid, RT_FONT);
  776.           if (!pFont)
  777.           {
  778.           client->errorValue = fid;
  779. --- 2065,2071 ----
  780.            | ((Font)*(pElt+3)) << 8
  781.            | ((Font)*(pElt+2)) << 16
  782.            | ((Font)*(pElt+1)) << 24;
  783. !         pFont = (EncodedFontPtr)LookupIDByType(fid, RT_FONT);
  784.           if (!pFont)
  785.           {
  786.           client->errorValue = fid;
  787. ***************
  788. *** 3033,3042 ****
  789.       unsigned long nbytes, total;
  790.       long nfonts;
  791.       int n, result;
  792.       REQUEST(xSetFontPathReq);
  793. !     
  794.       REQUEST_AT_LEAST_SIZE(xSetFontPathReq);
  795. !     
  796.       nbytes = (stuff->length << 2) - sizeof(xSetFontPathReq);
  797.       total = nbytes;
  798.       ptr = (unsigned char *)&stuff[1];
  799. --- 3041,3051 ----
  800.       unsigned long nbytes, total;
  801.       long nfonts;
  802.       int n, result;
  803. +     int    error= -1;
  804.       REQUEST(xSetFontPathReq);
  805.       REQUEST_AT_LEAST_SIZE(xSetFontPathReq);
  806.       nbytes = (stuff->length << 2) - sizeof(xSetFontPathReq);
  807.       total = nbytes;
  808.       ptr = (unsigned char *)&stuff[1];
  809. ***************
  810. *** 3043,3058 ****
  811.       nfonts = stuff->nFonts;
  812.       while (--nfonts >= 0)
  813.       {
  814. !     if ((total == 0) || (total < (n = (*ptr + 1))))
  815. !         return(BadLength);
  816. !     total -= n;
  817. !     ptr += n;
  818.       }
  819.       if (total >= 4)
  820. !     return(BadLength);
  821. !     result = SetFontPath(client, stuff->nFonts, (char *)&stuff[1]);
  822.       if (!result)
  823. !     result = client->noClientException;
  824.       return (result);
  825.   }
  826.   
  827. --- 3052,3069 ----
  828.       nfonts = stuff->nFonts;
  829.       while (--nfonts >= 0)
  830.       {
  831. !         if ((total == 0) || (total < (n = (*ptr + 1))))
  832. !             return(BadLength);
  833. !         total -= n;
  834. !         ptr += n;
  835.       }
  836.       if (total >= 4)
  837. !         return(BadLength);
  838. !     result = fpSetFontPath(stuff->nFonts, (char *)&stuff[1], &error);
  839. !     if (error!=-1)
  840. !         client->errorValue=     error;
  841.       if (!result)
  842. !         result = client->noClientException;
  843.       return (result);
  844.   }
  845.   
  846. ***************
  847. *** 3068,3074 ****
  848.       REQUEST (xReq);
  849.   
  850.       REQUEST_SIZE_MATCH(xReq);
  851. !     pFP = GetFontPath();
  852.       if (!pFP)
  853.       return(BadAlloc);
  854.       stringLens = 0;
  855. --- 3079,3085 ----
  856.       REQUEST (xReq);
  857.   
  858.       REQUEST_SIZE_MATCH(xReq);
  859. !     pFP = fpGetFontPath();
  860.       if (!pFP)
  861.       return(BadAlloc);
  862.       stringLens = 0;
  863. server/ddx/mi/mibstore.c
  864. *** /tmp/,RCSt1a13054    Sat Sep 23 11:52:56 1989
  865. --- mibstore.c    Fri Sep 22 10:53:31 1989
  866. ***************
  867. *** 30,38 ****
  868.   #include "extnsionst.h"
  869.   #include "windowstr.h"
  870.   #include "pixmapstr.h"
  871. - #include "fontstruct.h"
  872. - #include "dixfontstr.h"
  873. - #include "dixstruct.h"        /* For requestingClient */
  874.   #include "mi.h"
  875.   #include "mibstorest.h"
  876.   
  877. --- 30,35 ----
  878. *** /a19c/R4-tape/mit/server/ddx/mi/miglblt.c    Fri Jun  9 12:08:27 1989
  879. --- server/ddx/mi/miglblt.c    Mon Sep 11 16:14:48 1989
  880. ***************
  881. *** 27,34 ****
  882.   #include    "X.h"
  883.   #include    "Xmd.h"
  884.   #include    "Xproto.h"
  885. - #include    "fontstruct.h"
  886. - #include    "dixfontstr.h"
  887.   #include    "gcstruct.h"
  888.   #include    "windowstr.h"
  889.   #include    "scrnintstr.h"
  890. --- 27,32 ----
  891. ***************
  892. *** 35,40 ****
  893. --- 33,40 ----
  894.   #include    "pixmap.h"
  895.   #include    "servermd.h"
  896.   
  897. + #include    "serverfont.h"
  898.   extern void QueryGlyphExtents();
  899.   
  900.   /*
  901. ***************
  902. *** 67,73 ****
  903.       int width, height;
  904.       PixmapPtr pPixmap;
  905.       int nbyLine;            /* bytes per line of padded pixmap */
  906. !     FontRec *pfont;
  907.       GCPtr pGCtmp;
  908.       register int i;
  909.       register int j;
  910. --- 67,73 ----
  911.       int width, height;
  912.       PixmapPtr pPixmap;
  913.       int nbyLine;            /* bytes per line of padded pixmap */
  914. !     EncodedFontPtr    pfont;
  915.       GCPtr pGCtmp;
  916.       register int i;
  917.       register int j;
  918. ***************
  919. *** 88,97 ****
  920.       }
  921.   
  922.       pfont = pGC->font;
  923. !     width = pfont->pFI->maxbounds.metrics.rightSideBearing - 
  924. !     pfont->pFI->minbounds.metrics.leftSideBearing;
  925. !     height = pfont->pFI->maxbounds.metrics.ascent + 
  926. !     pfont->pFI->maxbounds.metrics.descent;
  927.   
  928.       pPixmap = (*pDrawable->pScreen->CreatePixmap)(pDrawable->pScreen,
  929.                             width, height, 1);
  930. --- 88,97 ----
  931.       }
  932.   
  933.       pfont = pGC->font;
  934. !     width = pfont->pCS->maxbounds.rightSideBearing - 
  935. !     pfont->pCS->minbounds.leftSideBearing;
  936. !     height = pfont->pCS->maxbounds.ascent + 
  937. !     pfont->pCS->maxbounds.descent;
  938.   
  939.       pPixmap = (*pDrawable->pScreen->CreatePixmap)(pDrawable->pScreen,
  940.                             width, height, 1);
  941. ***************
  942. *** 122,128 ****
  943.       while(nglyph--)
  944.       {
  945.       pci = *ppci++;
  946. !     pglyph = pglyphBase + pci->byteOffset;
  947.       gWidth = GLYPHWIDTHPIXELS(pci);
  948.       gHeight = GLYPHHEIGHTPIXELS(pci);
  949.       if (gWidth && gHeight)
  950. --- 122,128 ----
  951.       while(nglyph--)
  952.       {
  953.       pci = *ppci++;
  954. !     pglyph = pci->pPriv;
  955.       gWidth = GLYPHWIDTHPIXELS(pci);
  956.       gHeight = GLYPHHEIGHTPIXELS(pci);
  957.       if (gWidth && gHeight)
  958. ***************
  959. *** 174,183 ****
  960.       QueryGlyphExtents(pGC->font, ppci, (unsigned long)nglyph, &info);
  961.   
  962.       backrect.x = x;
  963. !     backrect.y = y - pGC->font->pFI->fontAscent;
  964.       backrect.width = info.overallWidth;
  965. !     backrect.height = pGC->font->pFI->fontAscent + 
  966. !               pGC->font->pFI->fontDescent;
  967.   
  968.       oldAlu = pGC->alu;
  969.       oldFG = pGC->fgPixel;
  970. --- 174,183 ----
  971.       QueryGlyphExtents(pGC->font, ppci, (unsigned long)nglyph, &info);
  972.   
  973.       backrect.x = x;
  974. !     backrect.y = y - pGC->font->pCS->fontAscent;
  975.       backrect.width = info.overallWidth;
  976. !     backrect.height = pGC->font->pCS->fontAscent + 
  977. !               pGC->font->pCS->fontDescent;
  978.   
  979.       oldAlu = pGC->alu;
  980.       oldFG = pGC->fgPixel;
  981. server/ddx/mi/misprite.c
  982. *** /tmp/,RCSt1a13078    Sat Sep 23 11:53:32 1989
  983. --- misprite.c    Fri Sep 22 11:23:20 1989
  984. ***************
  985. *** 34,41 ****
  986.   # include   "gcstruct.h"
  987.   # include   "mipointer.h"
  988.   # include   "mispritest.h"
  989. ! # include   "dixfontstr.h"
  990. ! # include   "fontstruct.h"
  991.   
  992.   /*
  993.    * screen wrappers
  994. --- 34,40 ----
  995.   # include   "gcstruct.h"
  996.   # include   "mipointer.h"
  997.   # include   "mispritest.h"
  998. ! # include   "serverfont.h"
  999.   
  1000.   /*
  1001.    * screen wrappers
  1002. ***************
  1003. *** 1417,1423 ****
  1004.   static Bool
  1005.   miSpriteTextOverlap (pDraw, font, x, y, n, charinfo, imageblt, w, cursorBox)
  1006.       DrawablePtr   pDraw;
  1007. !     FontPtr      font;
  1008.       int          x, y;
  1009.       unsigned long n;
  1010.       CharInfoPtr   *charinfo;
  1011. --- 1416,1422 ----
  1012.   static Bool
  1013.   miSpriteTextOverlap (pDraw, font, x, y, n, charinfo, imageblt, w, cursorBox)
  1014.       DrawablePtr   pDraw;
  1015. !     EncodedFontPtr      font;
  1016.       int          x, y;
  1017.       unsigned long n;
  1018.       CharInfoPtr   *charinfo;
  1019. ***************
  1020. *** 1430,1436 ****
  1021.       x += pDraw->x;
  1022.       y += pDraw->y;
  1023.   
  1024. !     if (font->pFI->minbounds.metrics.characterWidth >= 0)
  1025.       {
  1026.       /* compute an approximate (but covering) bounding box */
  1027.       if (!imageblt || (charinfo[0]->metrics.leftSideBearing < 0))
  1028. --- 1429,1435 ----
  1029.       x += pDraw->x;
  1030.       y += pDraw->y;
  1031.   
  1032. !     if (font->pCS->minbounds.characterWidth >= 0)
  1033.       {
  1034.       /* compute an approximate (but covering) bounding box */
  1035.       if (!imageblt || (charinfo[0]->metrics.leftSideBearing < 0))
  1036. ***************
  1037. *** 1440,1446 ****
  1038.       if (w)
  1039.           extents.overallRight = w - charinfo[n-1]->metrics.characterWidth;
  1040.       else
  1041. !         extents.overallRight = font->pFI->maxbounds.metrics.characterWidth
  1042.                       * (n - 1);
  1043.       if (imageblt && (charinfo[n-1]->metrics.characterWidth >
  1044.                charinfo[n-1]->metrics.rightSideBearing))
  1045. --- 1439,1445 ----
  1046.       if (w)
  1047.           extents.overallRight = w - charinfo[n-1]->metrics.characterWidth;
  1048.       else
  1049. !         extents.overallRight = font->pCS->maxbounds.characterWidth
  1050.                       * (n - 1);
  1051.       if (imageblt && (charinfo[n-1]->metrics.characterWidth >
  1052.                charinfo[n-1]->metrics.rightSideBearing))
  1053. ***************
  1054. *** 1448,1462 ****
  1055.       else
  1056.           extents.overallRight += charinfo[n-1]->metrics.rightSideBearing;
  1057.       if (imageblt &&
  1058. !         (font->pFI->fontAscent > font->pFI->maxbounds.metrics.ascent))
  1059. !         extents.overallAscent = font->pFI->fontAscent;
  1060.       else
  1061. !         extents.overallAscent = font->pFI->maxbounds.metrics.ascent;
  1062.       if (imageblt &&
  1063. !         (font->pFI->fontDescent > font->pFI->maxbounds.metrics.descent))
  1064. !         extents.overallDescent = font->pFI->fontDescent;
  1065.       else
  1066. !         extents.overallDescent = font->pFI->maxbounds.metrics.descent;
  1067.       if (!BOX_OVERLAP(cursorBox,
  1068.                x + extents.overallLeft,
  1069.                y - extents.overallAscent,
  1070. --- 1447,1461 ----
  1071.       else
  1072.           extents.overallRight += charinfo[n-1]->metrics.rightSideBearing;
  1073.       if (imageblt &&
  1074. !         (font->pCS->fontAscent > font->pCS->maxbounds.ascent))
  1075. !         extents.overallAscent = font->pCS->fontAscent;
  1076.       else
  1077. !         extents.overallAscent = font->pCS->maxbounds.ascent;
  1078.       if (imageblt &&
  1079. !         (font->pCS->fontDescent > font->pCS->maxbounds.descent))
  1080. !         extents.overallDescent = font->pCS->fontDescent;
  1081.       else
  1082. !         extents.overallDescent = font->pCS->maxbounds.descent;
  1083.       if (!BOX_OVERLAP(cursorBox,
  1084.                x + extents.overallLeft,
  1085.                y - extents.overallAscent,
  1086. ***************
  1087. *** 1522,1528 ****
  1088.           miSpriteRemoveCursor(pDraw->pScreen);
  1089.   
  1090.       drawFunc = imageblt ? pGC->ops->ImageGlyphBlt : pGC->ops->PolyGlyphBlt;
  1091. !     (*drawFunc) (pDraw, pGC, x, y, n, charinfo, pGC->font->pGlyphs);
  1092.       }
  1093.       DEALLOCATE_LOCAL(charinfo);
  1094.       return x + w;
  1095. --- 1521,1527 ----
  1096.           miSpriteRemoveCursor(pDraw->pScreen);
  1097.   
  1098.       drawFunc = imageblt ? pGC->ops->ImageGlyphBlt : pGC->ops->PolyGlyphBlt;
  1099. !     (*drawFunc) (pDraw, pGC, x, y, n, charinfo, pGC->font->pCS->pBitmaps);
  1100.       }
  1101.       DEALLOCATE_LOCAL(charinfo);
  1102.       return x + w;
  1103. ***************
  1104. *** 1569,1575 ****
  1105.       if (GC_CHECK((WindowPtr) pDrawable))
  1106.       ret = miSpriteText (pDrawable, pGC, x, y, (unsigned long)count,
  1107.                   (char *)chars,
  1108. !                 pGC->font->pFI->lastRow == 0 ?
  1109.                   Linear16Bit : TwoD16Bit, FALSE, &pScreenPriv->saved);
  1110.       else
  1111.       ret = (*pGC->ops->PolyText16) (pDrawable, pGC, x, y, count, chars);
  1112. --- 1568,1574 ----
  1113.       if (GC_CHECK((WindowPtr) pDrawable))
  1114.       ret = miSpriteText (pDrawable, pGC, x, y, (unsigned long)count,
  1115.                   (char *)chars,
  1116. !                 pGC->font->lastRow == 0 ?
  1117.                   Linear16Bit : TwoD16Bit, FALSE, &pScreenPriv->saved);
  1118.       else
  1119.       ret = (*pGC->ops->PolyText16) (pDrawable, pGC, x, y, count, chars);
  1120. ***************
  1121. *** 1614,1620 ****
  1122.       if (GC_CHECK((WindowPtr) pDrawable))
  1123.       (void) miSpriteText (pDrawable, pGC, x, y, (unsigned long)count,
  1124.                    (char *)chars,
  1125. !                 pGC->font->pFI->lastRow == 0 ?
  1126.                   Linear16Bit : TwoD16Bit, TRUE, &pScreenPriv->saved);
  1127.       else
  1128.       (*pGC->ops->ImageText16) (pDrawable, pGC, x, y, count, chars);
  1129. --- 1613,1619 ----
  1130.       if (GC_CHECK((WindowPtr) pDrawable))
  1131.       (void) miSpriteText (pDrawable, pGC, x, y, (unsigned long)count,
  1132.                    (char *)chars,
  1133. !                 pGC->font->lastRow == 0 ?
  1134.                   Linear16Bit : TwoD16Bit, TRUE, &pScreenPriv->saved);
  1135.       else
  1136.       (*pGC->ops->ImageText16) (pDrawable, pGC, x, y, count, chars);
  1137. *** /a19c/R4-tape/mit/server/ddx/mi/mipolytext.c    Fri Jun  9 12:08:42 1989
  1138. --- server/ddx/mi/mipolytext.c    Mon Sep 11 16:15:40 1989
  1139. ***************
  1140. *** 34,43 ****
  1141.   #include    "X.h"
  1142.   #include    "Xmd.h"
  1143.   #include    "Xproto.h"
  1144. - #include    "fontstruct.h"
  1145. - #include    "dixfontstr.h"
  1146.   #include    "gcstruct.h"
  1147.   
  1148.   int
  1149.   miPolyText(pDraw, pGC, x, y, count, chars, fontEncoding)
  1150.       DrawablePtr pDraw;
  1151. --- 34,43 ----
  1152.   #include    "X.h"
  1153.   #include    "Xmd.h"
  1154.   #include    "Xproto.h"
  1155.   #include    "gcstruct.h"
  1156.   
  1157. + #include    "serverfont.h"
  1158.   int
  1159.   miPolyText(pDraw, pGC, x, y, count, chars, fontEncoding)
  1160.       DrawablePtr pDraw;
  1161. ***************
  1162. *** 59,65 ****
  1163.       for (i=0; i < n; i++) w += charinfo[i]->metrics.characterWidth;
  1164.       if (n != 0)
  1165.           (*pGC->ops->PolyGlyphBlt)(
  1166. !         pDraw, pGC, x, y, n, charinfo, pGC->font->pGlyphs);
  1167.   
  1168.       DEALLOCATE_LOCAL(charinfo);
  1169.       return x+w;
  1170. --- 59,65 ----
  1171.       for (i=0; i < n; i++) w += charinfo[i]->metrics.characterWidth;
  1172.       if (n != 0)
  1173.           (*pGC->ops->PolyGlyphBlt)(
  1174. !         pDraw, pGC, x, y, n, charinfo, pGC->font->pCS->pBitmaps);
  1175.   
  1176.       DEALLOCATE_LOCAL(charinfo);
  1177.       return x+w;
  1178. ***************
  1179. *** 86,92 ****
  1180.       for (i=0; i < n; i++) w += charinfo[i]->metrics.characterWidth;
  1181.       if (n != 0)
  1182.           (*pGC->ops->PolyGlyphBlt)(
  1183. !         pDraw, pGC, x, y, n, charinfo, pGC->font->pGlyphs);
  1184.   
  1185.       DEALLOCATE_LOCAL(charinfo);
  1186.       return x+w;
  1187. --- 86,92 ----
  1188.       for (i=0; i < n; i++) w += charinfo[i]->metrics.characterWidth;
  1189.       if (n != 0)
  1190.           (*pGC->ops->PolyGlyphBlt)(
  1191. !         pDraw, pGC, x, y, n, charinfo, pGC->font->pCS->pBitmaps);
  1192.   
  1193.       DEALLOCATE_LOCAL(charinfo);
  1194.       return x+w;
  1195. ***************
  1196. *** 108,120 ****
  1197.       if(!(charinfo = (CharInfoPtr *)ALLOCATE_LOCAL(count*sizeof(CharInfoPtr ))))
  1198.       return x ;
  1199.       GetGlyphs(pGC->font, (unsigned long)count, (unsigned char *)chars,
  1200. !           (pGC->font->pFI->lastRow == 0) ? Linear16Bit : TwoD16Bit,
  1201.             &n, charinfo);
  1202.       w = 0;
  1203.       for (i=0; i < n; i++) w += charinfo[i]->metrics.characterWidth;
  1204.       if (n != 0)
  1205.           (*pGC->ops->PolyGlyphBlt)(
  1206. !         pDraw, pGC, x, y, n, charinfo, pGC->font->pGlyphs);
  1207.   
  1208.       DEALLOCATE_LOCAL(charinfo);
  1209.       return x+w;
  1210. --- 108,120 ----
  1211.       if(!(charinfo = (CharInfoPtr *)ALLOCATE_LOCAL(count*sizeof(CharInfoPtr ))))
  1212.       return x ;
  1213.       GetGlyphs(pGC->font, (unsigned long)count, (unsigned char *)chars,
  1214. !           (pGC->font->lastRow == 0) ? Linear16Bit : TwoD16Bit,
  1215.             &n, charinfo);
  1216.       w = 0;
  1217.       for (i=0; i < n; i++) w += charinfo[i]->metrics.characterWidth;
  1218.       if (n != 0)
  1219.           (*pGC->ops->PolyGlyphBlt)(
  1220. !         pDraw, pGC, x, y, n, charinfo, pGC->font->pCS->pBitmaps);
  1221.   
  1222.       DEALLOCATE_LOCAL(charinfo);
  1223.       return x+w;
  1224. ***************
  1225. *** 132,138 ****
  1226.   {
  1227.       register CharInfoPtr *charinfo;
  1228.       unsigned long n, i;
  1229. !     FontPtr font = pGC->font;
  1230.       unsigned int w;
  1231.   
  1232.       if(!(charinfo = (CharInfoPtr *)ALLOCATE_LOCAL(count*sizeof(CharInfoPtr))))
  1233. --- 132,138 ----
  1234.   {
  1235.       register CharInfoPtr *charinfo;
  1236.       unsigned long n, i;
  1237. !     EncodedFontPtr font = pGC->font;
  1238.       unsigned int w;
  1239.   
  1240.       if(!(charinfo = (CharInfoPtr *)ALLOCATE_LOCAL(count*sizeof(CharInfoPtr))))
  1241. ***************
  1242. *** 142,148 ****
  1243.       w = 0;
  1244.       for (i=0; i < n; i++) w += charinfo[i]->metrics.characterWidth;
  1245.       if (n !=0 )
  1246. !         (*pGC->ops->ImageGlyphBlt)(pDraw, pGC, x, y, n, charinfo, font->pGlyphs);
  1247.       DEALLOCATE_LOCAL(charinfo);
  1248.       return x+w;
  1249.   }
  1250. --- 142,149 ----
  1251.       w = 0;
  1252.       for (i=0; i < n; i++) w += charinfo[i]->metrics.characterWidth;
  1253.       if (n !=0 )
  1254. !         (*pGC->ops->ImageGlyphBlt)(pDraw, pGC, x, y, n, charinfo, 
  1255. !                         font->pCS->pBitmaps);
  1256.       DEALLOCATE_LOCAL(charinfo);
  1257.       return x+w;
  1258.   }
  1259. ***************
  1260. *** 158,164 ****
  1261.   {
  1262.       CharInfoPtr *charinfo;
  1263.       unsigned long n;
  1264. !     FontPtr font = pGC->font;
  1265.   
  1266.       if(!(charinfo = (CharInfoPtr *)ALLOCATE_LOCAL(count*sizeof(CharInfoPtr))))
  1267.       return;
  1268. --- 159,165 ----
  1269.   {
  1270.       CharInfoPtr *charinfo;
  1271.       unsigned long n;
  1272. !     EncodedFontPtr font = pGC->font;
  1273.   
  1274.       if(!(charinfo = (CharInfoPtr *)ALLOCATE_LOCAL(count*sizeof(CharInfoPtr))))
  1275.       return;
  1276. ***************
  1277. *** 165,171 ****
  1278.       GetGlyphs(font, (unsigned long)count, (unsigned char *)chars,
  1279.             Linear8Bit, &n, charinfo);
  1280.       if (n !=0 )
  1281. !         (*pGC->ops->ImageGlyphBlt)(pDraw, pGC, x, y, n, charinfo, font->pGlyphs);
  1282.       DEALLOCATE_LOCAL(charinfo);
  1283.   }
  1284.   
  1285. --- 166,173 ----
  1286.       GetGlyphs(font, (unsigned long)count, (unsigned char *)chars,
  1287.             Linear8Bit, &n, charinfo);
  1288.       if (n !=0 )
  1289. !         (*pGC->ops->ImageGlyphBlt)(pDraw, pGC, x, y, n, charinfo, 
  1290. !                         font->pCS->pBitmaps);
  1291.       DEALLOCATE_LOCAL(charinfo);
  1292.   }
  1293.   
  1294. ***************
  1295. *** 180,193 ****
  1296.   {
  1297.       CharInfoPtr *charinfo;
  1298.       unsigned long n;
  1299. !     FontPtr font = pGC->font;
  1300.   
  1301.       if(!(charinfo = (CharInfoPtr *)ALLOCATE_LOCAL(count*sizeof(CharInfoPtr))))
  1302.       return;
  1303.       GetGlyphs(font, (unsigned long)count, (unsigned char *)chars,
  1304. !           (pGC->font->pFI->lastRow == 0) ? Linear16Bit : TwoD16Bit,
  1305.             &n, charinfo);
  1306.       if (n !=0 )
  1307. !         (*pGC->ops->ImageGlyphBlt)(pDraw, pGC, x, y, n, charinfo, font->pGlyphs);
  1308.       DEALLOCATE_LOCAL(charinfo);
  1309.   }
  1310. --- 182,196 ----
  1311.   {
  1312.       CharInfoPtr *charinfo;
  1313.       unsigned long n;
  1314. !     EncodedFontPtr font = pGC->font;
  1315.   
  1316.       if(!(charinfo = (CharInfoPtr *)ALLOCATE_LOCAL(count*sizeof(CharInfoPtr))))
  1317.       return;
  1318.       GetGlyphs(font, (unsigned long)count, (unsigned char *)chars,
  1319. !           (pGC->font->lastRow == 0) ? Linear16Bit : TwoD16Bit,
  1320.             &n, charinfo);
  1321.       if (n !=0 )
  1322. !         (*pGC->ops->ImageGlyphBlt)(pDraw, pGC, x, y, n, charinfo, 
  1323. !                             font->pCS->pBitmaps);
  1324.       DEALLOCATE_LOCAL(charinfo);
  1325.   }
  1326. *** /a19c/R4-tape/mit/server/ddx/mi/Imakefile    Sun Jul  9 12:43:52 1989
  1327. --- server/ddx/mi/Imakefile    Mon Sep 11 17:59:02 1989
  1328. ***************
  1329. *** 19,25 ****
  1330.   STD_DEFINES = ServerDefines
  1331.   CDEBUGFLAGS = ServerCDebugFlags
  1332.   EXT_DEFINES = ExtensionDefines
  1333. ! INCLUDES = -I. -I../../include -I$(INCLUDESRC)
  1334.   LINTLIBS = ../../dix/llib-ldix.ln ../../os/4.2bsd/llib-los.ln
  1335.   
  1336.   NormalLibraryObjectRule()
  1337. --- 19,25 ----
  1338.   STD_DEFINES = ServerDefines
  1339.   CDEBUGFLAGS = ServerCDebugFlags
  1340.   EXT_DEFINES = ExtensionDefines
  1341. ! INCLUDES = -I. -I../../include -I$(INCLUDESRC) -I$(FONTSRC)/include
  1342.   LINTLIBS = ../../dix/llib-ldix.ln ../../os/4.2bsd/llib-los.ln
  1343.   
  1344.   NormalLibraryObjectRule()
  1345. *** /a19c/R4-tape/mit/server/ddx/mfb/Imakefile    Sat Jul 22 11:13:34 1989
  1346. --- server/ddx/mfb/Imakefile    Mon Sep 11 17:48:49 1989
  1347. ***************
  1348. *** 21,27 ****
  1349.   
  1350.   STD_DEFINES = ServerDefines
  1351.   CDEBUGFLAGS = ServerCDebugFlags
  1352. ! INCLUDES = -I. -I../mi -I../../include -I$(INCLUDESRC)
  1353.   LINTDEFS = -DMFBPOLYGLYPHBLT=mfbPolyGlyphBltWhite \
  1354.          -DMFBIMAGEGLYPHBLT=mfbImageGlyphBltWhite \
  1355.          -DEQWHOLEWORD=\=~0 -DOPEQ=\|=
  1356. --- 21,27 ----
  1357.   
  1358.   STD_DEFINES = ServerDefines
  1359.   CDEBUGFLAGS = ServerCDebugFlags
  1360. ! INCLUDES = -I. -I../mi -I../../include -I$(INCLUDESRC) -I$(FONTSRC)/include
  1361.   LINTDEFS = -DMFBPOLYGLYPHBLT=mfbPolyGlyphBltWhite \
  1362.          -DMFBIMAGEGLYPHBLT=mfbImageGlyphBltWhite \
  1363.          -DEQWHOLEWORD=\=~0 -DOPEQ=\|=
  1364. *** /a19c/R4-tape/mit/server/ddx/mfb/mfbfont.c    Sat Mar 18 09:27:07 1989
  1365. --- server/ddx/mfb/mfbfont.c    Mon Sep 11 16:20:38 1989
  1366. ***************
  1367. *** 25,34 ****
  1368.   #include "X.h"
  1369.   #include "Xmd.h"
  1370.   #include "Xproto.h"
  1371. - #include "fontstruct.h"
  1372. - #include "dixfontstr.h"
  1373.   #include "scrnintstr.h"
  1374.   
  1375.   #include "mfb.h"
  1376.   
  1377.   /*
  1378. --- 25,34 ----
  1379.   #include "X.h"
  1380.   #include "Xmd.h"
  1381.   #include "Xproto.h"
  1382.   #include "scrnintstr.h"
  1383.   
  1384. + #include "serverfont.h"
  1385.   #include "mfb.h"
  1386.   
  1387.   /*
  1388. ***************
  1389. *** 40,76 ****
  1390.   Bool
  1391.   mfbRealizeFont( pscr, pFont)
  1392.       ScreenPtr    pscr;
  1393. !     FontPtr    pFont;
  1394.   {
  1395.       /*
  1396.        * pGC->font is now known to be valid
  1397.        */
  1398.       int            index = pscr->myNum;
  1399. !     FontInfoPtr        pfi = pFont->pFI;
  1400. !     CharInfoPtr        maxb = &pfi->maxbounds;
  1401. !     CharInfoPtr        minb = &pfi->minbounds;
  1402.   
  1403.       /*
  1404.        * pick the fastest output routines that can do the job.
  1405.        */
  1406. !     if (   maxb->metrics.rightSideBearing -
  1407. !            minb->metrics.leftSideBearing > 32    /* big glyphs */
  1408. !       || pfi->drawDirection != FontLeftToRight
  1409. !       || pfi->noOverlap == 0)
  1410.       pFont->devPriv[ index] = (pointer)FT_VARPITCH;
  1411.       else  /* an optimizable case */
  1412.       {
  1413. !     if (     maxb->metrics.leftSideBearing ==
  1414. !             minb->metrics.leftSideBearing /* fixed pitch */
  1415. !           && maxb->metrics.leftSideBearing == 0      /* fixed pitch */
  1416. !           && maxb->metrics.rightSideBearing ==
  1417. !                 minb->metrics.rightSideBearing /* fixed pitch */
  1418. !           && maxb->metrics.characterWidth ==
  1419. !                 minb->metrics.characterWidth  /* fixed pitch */
  1420. !           && maxb->metrics.ascent ==
  1421. !                 minb->metrics.ascent      /* fixed height */
  1422. !           && maxb->metrics.descent ==
  1423. !                 minb->metrics.descent)  /* fixed height */
  1424.           pFont->devPriv[ index] = (pointer)FT_FIXPITCH;
  1425.       else
  1426.           pFont->devPriv[ index] = (pointer)FT_SMALLPITCH;
  1427. --- 40,76 ----
  1428.   Bool
  1429.   mfbRealizeFont( pscr, pFont)
  1430.       ScreenPtr    pscr;
  1431. !     EncodedFontPtr    pFont;
  1432.   {
  1433.       /*
  1434.        * pGC->font is now known to be valid
  1435.        */
  1436.       int            index = pscr->myNum;
  1437. !     CharSetPtr        pcs = pFont->pCS;
  1438. !     xCharInfo        *maxb = &pcs->maxbounds;
  1439. !     xCharInfo        *minb = &pcs->minbounds;
  1440.   
  1441.       /*
  1442.        * pick the fastest output routines that can do the job.
  1443.        */
  1444. !     if (   maxb->rightSideBearing -
  1445. !            minb->leftSideBearing > 32    /* big glyphs */
  1446. !       || pcs->drawDirection != FontLeftToRight
  1447. !       || pcs->noOverlap == 0)
  1448.       pFont->devPriv[ index] = (pointer)FT_VARPITCH;
  1449.       else  /* an optimizable case */
  1450.       {
  1451. !     if (     maxb->leftSideBearing ==
  1452. !             minb->leftSideBearing /* fixed pitch */
  1453. !           && maxb->leftSideBearing == 0      /* fixed pitch */
  1454. !           && maxb->rightSideBearing ==
  1455. !                 minb->rightSideBearing /* fixed pitch */
  1456. !           && maxb->characterWidth ==
  1457. !                 minb->characterWidth  /* fixed pitch */
  1458. !           && maxb->ascent ==
  1459. !                 minb->ascent      /* fixed height */
  1460. !           && maxb->descent ==
  1461. !                 minb->descent)  /* fixed height */
  1462.           pFont->devPriv[ index] = (pointer)FT_FIXPITCH;
  1463.       else
  1464.           pFont->devPriv[ index] = (pointer)FT_SMALLPITCH;
  1465. ***************
  1466. *** 85,91 ****
  1467.   Bool
  1468.   mfbUnrealizeFont( pscr, pFont)
  1469.       ScreenPtr    pscr;
  1470. !     FontPtr    pFont;
  1471.   {
  1472.       return (TRUE);
  1473.   }
  1474. --- 85,91 ----
  1475.   Bool
  1476.   mfbUnrealizeFont( pscr, pFont)
  1477.       ScreenPtr    pscr;
  1478. !     EncodedFontPtr    pFont;
  1479.   {
  1480.       return (TRUE);
  1481.   }
  1482. server/ddx/mfb/mfbgc.c
  1483. *** /tmp/,RCSt1a13126    Sat Sep 23 11:54:12 1989
  1484. --- mfbgc.c    Thu Sep 21 18:25:39 1989
  1485. ***************
  1486. *** 25,32 ****
  1487.   #include "X.h"
  1488.   #include "Xmd.h"
  1489.   #include "Xproto.h"
  1490. - #include "dixfontstr.h"
  1491. - #include "fontstruct.h"
  1492.   #include "gcstruct.h"
  1493.   #include "windowstr.h"
  1494.   #include "pixmapstr.h"
  1495. --- 25,30 ----
  1496. ***************
  1497. *** 38,43 ****
  1498. --- 36,43 ----
  1499.   
  1500.   #include "maskbits.h"
  1501.   
  1502. + #include "serverfont.h"
  1503.   static void mfbDestroyOps();
  1504.   
  1505.   static void mfbValidateGC(),    mfbChangeGC(),        mfbCopyGC();
  1506. ***************
  1507. *** 283,290 ****
  1508.       if (pGC->fillStyle != FillSolid)
  1509.       return 0;
  1510.       if (!pGC->font ||
  1511. !         pGC->font->pFI->maxbounds.metrics.rightSideBearing -
  1512. !     pGC->font->pFI->minbounds.metrics.leftSideBearing > 32)
  1513.       return 0;
  1514.       for (i = 0; i < numberCommonOps; i++) {
  1515.       cop = &mfbCommonOps[i];
  1516. --- 283,290 ----
  1517.       if (pGC->fillStyle != FillSolid)
  1518.       return 0;
  1519.       if (!pGC->font ||
  1520. !         pGC->font->pCS->maxbounds.rightSideBearing -
  1521. !     pGC->font->pCS->minbounds.leftSideBearing > 32)
  1522.       return 0;
  1523.       for (i = 0; i < numberCommonOps; i++) {
  1524.       cop = &mfbCommonOps[i];
  1525. ***************
  1526. *** 295,301 ****
  1527.       priv = (mfbPrivGC *) pGC->devPrivates[mfbGCPrivateIndex].ptr;
  1528.       if (priv->rop != cop->rrop)
  1529.           continue;
  1530. !     if (cop->terminalFont != pGC->font->pFI->terminalFont)
  1531.           continue;
  1532.       priv->FillArea = cop->fillArea;
  1533.       return cop->ops;
  1534. --- 295,301 ----
  1535.       priv = (mfbPrivGC *) pGC->devPrivates[mfbGCPrivateIndex].ptr;
  1536.       if (priv->rop != cop->rrop)
  1537.           continue;
  1538. !     if (cop->terminalFont != pGC->font->pCS->terminalFont)
  1539.           continue;
  1540.       priv->FillArea = cop->fillArea;
  1541.       return cop->ops;
  1542. ***************
  1543. *** 823,830 ****
  1544.       if (new_text || new_fill)
  1545.       {
  1546.       if ((pGC->font) &&
  1547. !         (pGC->font->pFI->maxbounds.metrics.rightSideBearing -
  1548. !          pGC->font->pFI->minbounds.metrics.leftSideBearing) > 32)
  1549.       {
  1550.           pGC->ops->PolyGlyphBlt = miPolyGlyphBlt;
  1551.           pGC->ops->ImageGlyphBlt = miImageGlyphBlt;
  1552. --- 823,830 ----
  1553.       if (new_text || new_fill)
  1554.       {
  1555.       if ((pGC->font) &&
  1556. !         (pGC->font->pCS->maxbounds.rightSideBearing -
  1557. !          pGC->font->pCS->minbounds.leftSideBearing) > 32)
  1558.       {
  1559.           pGC->ops->PolyGlyphBlt = miPolyGlyphBlt;
  1560.           pGC->ops->ImageGlyphBlt = miImageGlyphBlt;
  1561. ***************
  1562. *** 833,839 ****
  1563.       {
  1564.           /* special case ImageGlyphBlt for terminal emulator fonts */
  1565.           if ((pGC->font) &&
  1566. !         (pGC->font->pFI->terminalFont) &&
  1567.           (pGC->fgPixel != pGC->bgPixel))
  1568.           {
  1569.           /* pcc bug makes this not compile...
  1570. --- 833,839 ----
  1571.       {
  1572.           /* special case ImageGlyphBlt for terminal emulator fonts */
  1573.           if ((pGC->font) &&
  1574. !         (pGC->font->pCS->terminalFont) &&
  1575.           (pGC->fgPixel != pGC->bgPixel))
  1576.           {
  1577.           /* pcc bug makes this not compile...
  1578. *** /a19c/R4-tape/mit/server/ddx/mfb/mfbtegblt.c    Fri Jun  9 12:07:06 1989
  1579. --- server/ddx/mfb/mfbtegblt.c    Mon Sep 11 16:20:54 1989
  1580. ***************
  1581. *** 26,33 ****
  1582.   #include    "X.h"
  1583.   #include    "Xmd.h"
  1584.   #include    "Xproto.h"
  1585. - #include    "fontstruct.h"
  1586. - #include    "dixfontstr.h"
  1587.   #include    "gcstruct.h"
  1588.   #include    "windowstr.h"
  1589.   #include    "scrnintstr.h"
  1590. --- 26,31 ----
  1591. ***************
  1592. *** 36,41 ****
  1593. --- 34,41 ----
  1594.   #include    "mfb.h"
  1595.   #include    "maskbits.h"
  1596.   
  1597. + #include    "serverfont.h"
  1598.   /*
  1599.       this works for fonts with glyphs <= 32 bits wide.
  1600.   
  1601. ***************
  1602. *** 69,76 ****
  1603.       CharInfoPtr *ppci;        /* array of character info */
  1604.       unsigned char *pglyphBase;    /* start of array of glyphs */
  1605.   {
  1606. !     CharInfoPtr pci;
  1607. !     FontInfoPtr pfi = pGC->font->pFI;
  1608.       int xorg, yorg;
  1609.       int widthDst;
  1610.       unsigned int *pdstBase;    /* pointer to longword with top row 
  1611. --- 69,76 ----
  1612.       CharInfoPtr *ppci;        /* array of character info */
  1613.       unsigned char *pglyphBase;    /* start of array of glyphs */
  1614.   {
  1615. !     CharInfoRec ci;
  1616. !     CharSetPtr pcs = pGC->font->pCS;
  1617.       int xorg, yorg;
  1618.       int widthDst;
  1619.       unsigned int *pdstBase;    /* pointer to longword with top row 
  1620. ***************
  1621. *** 108,120 ****
  1622.       xpos = x + xorg;
  1623.       ypos = y + yorg;
  1624.   
  1625. !     pci = &pfi->maxbounds;
  1626. !     w = pci->metrics.characterWidth;
  1627. !     h = pfi->fontAscent + pfi->fontDescent;
  1628. !     widthGlyph = GLYPHWIDTHBYTESPADDED(pci);
  1629.   
  1630. !     xpos += pci->metrics.leftSideBearing;
  1631. !     ypos -= pfi->fontAscent;
  1632.   
  1633.       bbox.x1 = xpos;
  1634.       bbox.x2 = xpos + (w * nglyph);
  1635. --- 108,120 ----
  1636.       xpos = x + xorg;
  1637.       ypos = y + yorg;
  1638.   
  1639. !     ci.metrics = pcs->maxbounds;
  1640. !     w = ci.metrics.characterWidth;
  1641. !     h = pcs->fontAscent + pcs->fontDescent;
  1642. !     widthGlyph = GLYPHWIDTHBYTESPADDED(&ci);
  1643.   
  1644. !     xpos += ci.metrics.leftSideBearing;
  1645. !     ypos -= pcs->fontAscent;
  1646.   
  1647.       bbox.x1 = xpos;
  1648.       bbox.x2 = xpos + (w * nglyph);
  1649. ***************
  1650. *** 154,160 ****
  1651.           xpos &= 0x1f;
  1652.           while(nglyph--)
  1653.           {
  1654. !         pglyph = pglyphBase + (*ppci++)->byteOffset;
  1655.           hTmp = h;
  1656.           pdst = pdstBase;
  1657.   
  1658. --- 154,160 ----
  1659.           xpos &= 0x1f;
  1660.           while(nglyph--)
  1661.           {
  1662. !         pglyph = (*ppci++)->pPriv;
  1663.           hTmp = h;
  1664.           pdst = pdstBase;
  1665.   
  1666. *** /a19c/R4-tape/mit/server/ddx/mfb/mfbimggblt.c    Mon Jul 17 07:23:37 1989
  1667. --- server/ddx/mfb/mfbimggblt.c    Mon Sep 11 16:21:02 1989
  1668. ***************
  1669. *** 26,33 ****
  1670.   #include    "X.h"
  1671.   #include    "Xmd.h"
  1672.   #include    "Xproto.h"
  1673. - #include    "fontstruct.h"
  1674. - #include    "dixfontstr.h"
  1675.   #include    "gcstruct.h"
  1676.   #include    "windowstr.h"
  1677.   #include    "scrnintstr.h"
  1678. --- 26,31 ----
  1679. ***************
  1680. *** 36,41 ****
  1681. --- 34,41 ----
  1682.   #include    "mfb.h"
  1683.   #include    "maskbits.h"
  1684.   
  1685. + #include    "serverfont.h"
  1686.   extern void QueryGlyphExtents();
  1687.   
  1688.   /*
  1689. ***************
  1690. *** 142,151 ****
  1691.       QueryGlyphExtents(pGC->font, ppci, (unsigned long)nglyph, &info);
  1692.   
  1693.       backrect.x = x;
  1694. !     backrect.y = y - pGC->font->pFI->fontAscent;
  1695.       backrect.width = info.overallWidth;
  1696. !     backrect.height = pGC->font->pFI->fontAscent + 
  1697. !               pGC->font->pFI->fontDescent;
  1698.   
  1699.       x += xorg;
  1700.       y += yorg;
  1701. --- 142,151 ----
  1702.       QueryGlyphExtents(pGC->font, ppci, (unsigned long)nglyph, &info);
  1703.   
  1704.       backrect.x = x;
  1705. !     backrect.y = y - pGC->font->pCS->fontAscent;
  1706.       backrect.width = info.overallWidth;
  1707. !     backrect.height = pGC->font->pCS->fontAscent + 
  1708. !               pGC->font->pCS->fontDescent;
  1709.   
  1710.       x += xorg;
  1711.       y += yorg;
  1712. ***************
  1713. *** 199,205 ****
  1714.           while(nglyph--)
  1715.           {
  1716.           pci = *ppci;
  1717. !         pglyph = pglyphBase + pci->byteOffset;
  1718.           w = pci->metrics.rightSideBearing - pci->metrics.leftSideBearing;
  1719.           h = pci->metrics.ascent + pci->metrics.descent;
  1720.           widthGlyph = GLYPHWIDTHBYTESPADDED(pci);
  1721. --- 199,205 ----
  1722.           while(nglyph--)
  1723.           {
  1724.           pci = *ppci;
  1725. !         pglyph = pci->pPriv;
  1726.           w = pci->metrics.rightSideBearing - pci->metrics.leftSideBearing;
  1727.           h = pci->metrics.ascent + pci->metrics.descent;
  1728.           widthGlyph = GLYPHWIDTHBYTESPADDED(pci);
  1729. ***************
  1730. *** 374,380 ****
  1731.   
  1732.           glyphRow = (topEdge - y) + pci->metrics.ascent;
  1733.           widthGlyph = ppos[i].widthGlyph;
  1734. !         pglyph = pglyphBase + pci->byteOffset;
  1735.           pglyph += (glyphRow * widthGlyph);
  1736.   
  1737.           pdst = ppos[i].pdstBase - ((y-topEdge) * widthDst);
  1738. --- 374,380 ----
  1739.   
  1740.           glyphRow = (topEdge - y) + pci->metrics.ascent;
  1741.           widthGlyph = ppos[i].widthGlyph;
  1742. !         pglyph = pci->pPriv;
  1743.           pglyph += (glyphRow * widthGlyph);
  1744.   
  1745.           pdst = ppos[i].pdstBase - ((y-topEdge) * widthDst);
  1746. *** /a19c/R4-tape/mit/server/ddx/mfb/mfbplygblt.c    Sun Jul  9 12:57:50 1989
  1747. --- server/ddx/mfb/mfbplygblt.c    Mon Sep 11 16:21:08 1989
  1748. ***************
  1749. *** 26,33 ****
  1750.   #include "X.h"
  1751.   #include "Xmd.h"
  1752.   #include "Xproto.h"
  1753. - #include "fontstruct.h"
  1754. - #include "dixfontstr.h"
  1755.   #include "gcstruct.h"
  1756.   #include "windowstr.h"
  1757.   #include "pixmapstr.h"
  1758. --- 26,31 ----
  1759. ***************
  1760. *** 37,42 ****
  1761. --- 35,42 ----
  1762.   #include "maskbits.h"
  1763.   #include "miscstruct.h"
  1764.   
  1765. + #include "serverfont.h"
  1766.   extern void QueryGlyphExtents();
  1767.   
  1768.   /*
  1769. ***************
  1770. *** 156,162 ****
  1771.           while(nglyph--)
  1772.           {
  1773.           pci = *ppci;
  1774. !         pglyph = pglyphBase + pci->byteOffset;
  1775.           w = pci->metrics.rightSideBearing - pci->metrics.leftSideBearing;
  1776.           h = pci->metrics.ascent + pci->metrics.descent;
  1777.           widthGlyph = GLYPHWIDTHBYTESPADDED(pci);
  1778. --- 156,162 ----
  1779.           while(nglyph--)
  1780.           {
  1781.           pci = *ppci;
  1782. !         pglyph = pci->pPriv;
  1783.           w = pci->metrics.rightSideBearing - pci->metrics.leftSideBearing;
  1784.           h = pci->metrics.ascent + pci->metrics.descent;
  1785.           widthGlyph = GLYPHWIDTHBYTESPADDED(pci);
  1786. ***************
  1787. *** 321,327 ****
  1788.   
  1789.           glyphRow = (topEdge - y) + pci->metrics.ascent;
  1790.           widthGlyph = ppos[i].widthGlyph;
  1791. !         pglyph = pglyphBase + pci->byteOffset;
  1792.           pglyph += (glyphRow * widthGlyph);
  1793.   
  1794.           pdst = ppos[i].pdstBase - ((y-topEdge) * widthDst);
  1795. --- 321,327 ----
  1796.   
  1797.           glyphRow = (topEdge - y) + pci->metrics.ascent;
  1798.           widthGlyph = ppos[i].widthGlyph;
  1799. !         pglyph = pci->pPriv;
  1800.           pglyph += (glyphRow * widthGlyph);
  1801.   
  1802.           pdst = ppos[i].pdstBase - ((y-topEdge) * widthDst);
  1803. *** /a19c/R4-tape/mit/server/ddx/cfb/Imakefile    Sat Jul 22 11:15:59 1989
  1804. --- server/ddx/cfb/Imakefile    Mon Sep 11 17:57:48 1989
  1805. ***************
  1806. *** 14,20 ****
  1807.   
  1808.   STD_DEFINES = ServerDefines
  1809.   CDEBUGFLAGS = ServerCDebugFlags
  1810. !    INCLUDES = -I. -I../mfb -I../mi -I../../include -I$(INCLUDESRC)
  1811.      LINTLIBS = ../../dix/llib-ldix.ln ../../os/4.2bsd/llib-los.ln \
  1812.            ../mfb/llib-lmfb.ln ../mi/llib-lmi.ln
  1813.   
  1814. --- 14,20 ----
  1815.   
  1816.   STD_DEFINES = ServerDefines
  1817.   CDEBUGFLAGS = ServerCDebugFlags
  1818. !    INCLUDES = -I. -I../mfb -I../mi -I../../include -I$(INCLUDESRC)
  1819. -I$(FONTSRC)/include
  1820.      LINTLIBS = ../../dix/llib-ldix.ln ../../os/4.2bsd/llib-los.ln \
  1821.            ../mfb/llib-lmfb.ln ../mi/llib-lmi.ln
  1822.   
  1823. *** /a19c/R4-tape/mit/server/ddx/cfb/cfbgc.c    Wed Jul 19 06:31:34 1989
  1824. --- server/ddx/cfb/cfbgc.c    Mon Sep 11 16:16:24 1989
  1825. ***************
  1826. *** 24,31 ****
  1827.   #include "X.h"
  1828.   #include "Xmd.h"
  1829.   #include "Xproto.h"
  1830. - #include "dixfontstr.h"
  1831. - #include "fontstruct.h"
  1832.   #include "gcstruct.h"
  1833.   #include "windowstr.h"
  1834.   #include "pixmapstr.h"
  1835. --- 24,29 ----
  1836. ***************
  1837. *** 38,43 ****
  1838. --- 36,43 ----
  1839.   
  1840.   #include "cfbmskbits.h"
  1841.   
  1842. + #include "serverfont.h"
  1843.   static void cfbValidateGC(), cfbChangeGC(), cfbCopyGC(), cfbDestroyGC();
  1844.   static void cfbChangeClip(), cfbDestroyClip(), cfbCopyClip();
  1845.   static cfbDestroyOps();
  1846. ***************
  1847. *** 113,121 ****
  1848.       if (pGC->fillStyle != FillSolid)
  1849.       return 0;
  1850.       if (pGC->font &&
  1851. !     (pGC->font->pFI->maxbounds.metrics.rightSideBearing -
  1852. !          pGC->font->pFI->minbounds.metrics.leftSideBearing) <= 32 &&
  1853. !      pGC->font->pFI->terminalFont &&
  1854.        pGC->fgPixel != pGC->bgPixel)
  1855.       {
  1856.       return &cfbTEOps;
  1857. --- 113,121 ----
  1858.       if (pGC->fillStyle != FillSolid)
  1859.       return 0;
  1860.       if (pGC->font &&
  1861. !     (pGC->font->pCS->maxbounds.rightSideBearing -
  1862. !          pGC->font->pCS->minbounds.leftSideBearing) <= 32 &&
  1863. !      pGC->font->pCS->terminalFont &&
  1864.        pGC->fgPixel != pGC->bgPixel)
  1865.       {
  1866.       return &cfbTEOps;
  1867. ***************
  1868. *** 510,517 ****
  1869.   
  1870.       if (new_text && (pGC->font))
  1871.       {
  1872. !         if ((pGC->font->pFI->maxbounds.metrics.rightSideBearing -
  1873. !              pGC->font->pFI->minbounds.metrics.leftSideBearing) > 32)
  1874.           {
  1875.               pGC->ops->PolyGlyphBlt = miPolyGlyphBlt;
  1876.               pGC->ops->ImageGlyphBlt = miImageGlyphBlt;
  1877. --- 510,517 ----
  1878.   
  1879.       if (new_text && (pGC->font))
  1880.       {
  1881. !         if ((pGC->font->pCS->maxbounds.rightSideBearing -
  1882. !              pGC->font->pCS->minbounds.leftSideBearing) > 32)
  1883.           {
  1884.               pGC->ops->PolyGlyphBlt = miPolyGlyphBlt;
  1885.               pGC->ops->ImageGlyphBlt = miImageGlyphBlt;
  1886. ***************
  1887. *** 519,525 ****
  1888.           else
  1889.           {
  1890.               /* special case ImageGlyphBlt for terminal emulator fonts */
  1891. !             if ((pGC->font->pFI->terminalFont) &&
  1892.                   (pGC->fgPixel != pGC->bgPixel))
  1893.           {
  1894.                   pGC->ops->ImageGlyphBlt = cfbTEGlyphBlt;
  1895. --- 519,525 ----
  1896.           else
  1897.           {
  1898.               /* special case ImageGlyphBlt for terminal emulator fonts */
  1899. !             if ((pGC->font->pCS->terminalFont) &&
  1900.                   (pGC->fgPixel != pGC->bgPixel))
  1901.           {
  1902.                   pGC->ops->ImageGlyphBlt = cfbTEGlyphBlt;
  1903. *** /a19c/R4-tape/mit/server/ddx/cfb/cfbtegblt.c    Fri Jun  9 12:01:45 1989
  1904. --- server/ddx/cfb/cfbtegblt.c    Wed Sep 20 15:52:33 1989
  1905. ***************
  1906. *** 25,32 ****
  1907.   #include    "X.h"
  1908.   #include    "Xmd.h"
  1909.   #include    "Xproto.h"
  1910. - #include    "fontstruct.h"
  1911. - #include    "dixfontstr.h"
  1912.   #include    "gcstruct.h"
  1913.   #include    "windowstr.h"
  1914.   #include    "scrnintstr.h"
  1915. --- 25,30 ----
  1916. ***************
  1917. *** 35,40 ****
  1918. --- 33,40 ----
  1919.   #include    "cfb.h"
  1920.   #include    "cfbmskbits.h"
  1921.   
  1922. + #include     "serverfont.h"
  1923.   extern void miImageGlyphBlt();
  1924.   
  1925.   /*
  1926. ***************
  1927. *** 65,71 ****
  1928.       unsigned char *pglyphBase;    /* start of array of glyphs */
  1929.   {
  1930.       CharInfoPtr pci;
  1931. !     FontInfoPtr pfi = pGC->font->pFI;
  1932.       int widthDst;
  1933.       unsigned int *pdstBase;    /* pointer to longword with top row 
  1934.                      of current glyph */
  1935. --- 65,71 ----
  1936.       unsigned char *pglyphBase;    /* start of array of glyphs */
  1937.   {
  1938.       CharInfoPtr pci;
  1939. !     CharSetPtr pcs = pGC->font->pCS;
  1940.       int widthDst;
  1941.       unsigned int *pdstBase;    /* pointer to longword with top row 
  1942.                      of current glyph */
  1943. ***************
  1944. *** 100,112 ****
  1945.       widthDst = (int)(((PixmapPtr)pDrawable)->devKind) >> 2;
  1946.       }
  1947.   
  1948. !     pci = &pfi->maxbounds;
  1949. !     wtmp = pci->metrics.characterWidth;
  1950. !     h = pfi->fontAscent + pfi->fontDescent;
  1951. !     widthGlyph = GLYPHWIDTHBYTESPADDED(pci);
  1952.   
  1953. !     xpos += pci->metrics.leftSideBearing;
  1954. !     ypos -= pfi->fontAscent;
  1955.   
  1956.       bbox.x1 = xpos;
  1957.       bbox.x2 = xpos + (wtmp * nglyph);
  1958. --- 100,112 ----
  1959.       widthDst = (int)(((PixmapPtr)pDrawable)->devKind) >> 2;
  1960.       }
  1961.   
  1962. !     wtmp = pcs->maxbounds.characterWidth;
  1963. !     h = pcs->fontAscent + pcs->fontDescent;
  1964. !     widthGlyph = PADGLYPHWIDTHBYTES(pcs->maxbounds.rightSideBearing-
  1965. !                      pcs->maxbounds.leftSideBearing);
  1966.   
  1967. !     xpos += pcs->maxbounds.leftSideBearing;
  1968. !     ypos -= pcs->fontAscent;
  1969.   
  1970.       bbox.x1 = xpos;
  1971.       bbox.x2 = xpos + (wtmp * nglyph);
  1972. ***************
  1973. *** 150,156 ****
  1974.           while(nglyph--)
  1975.           {
  1976.   
  1977. !         pglyph = pglyphBase + (*ppci++)->byteOffset;
  1978.               pdst = pdtmp;
  1979.           hTmp = h;
  1980.   
  1981. --- 150,156 ----
  1982.           while(nglyph--)
  1983.           {
  1984.   
  1985. !         pglyph = (*ppci++)->pPriv;
  1986.               pdst = pdtmp;
  1987.           hTmp = h;
  1988.   
  1989. ***************
  1990. *** 182,188 ****
  1991.           pglyph += widthGlyph;
  1992.                   pdst += widthDst;
  1993.           }
  1994. !         xpos += pci->metrics.characterWidth; 
  1995.           }     
  1996.       break;
  1997.       }
  1998. --- 182,188 ----
  1999.           pglyph += widthGlyph;
  2000.                   pdst += widthDst;
  2001.           }
  2002. !         xpos += pcs->maxbounds.characterWidth; 
  2003.           }     
  2004.       break;
  2005.       }
  2006. *** /a19c/R4-tape/mit/server/include/gcstruct.h    Tue Jul 18 14:56:51 1989
  2007. --- server/include/gcstruct.h    Mon Sep 11 16:29:17 1989
  2008. ***************
  2009. *** 32,38 ****
  2010.   #include "region.h"
  2011.   #include "pixmap.h"
  2012.   #include "screenint.h"
  2013. ! #include "dixfont.h"
  2014.   
  2015.   /*
  2016.    * functions which modify the state of the GC
  2017. --- 32,38 ----
  2018.   #include "region.h"
  2019.   #include "pixmap.h"
  2020.   #include "screenint.h"
  2021. ! #include "font.h"
  2022.   
  2023.   /*
  2024.    * functions which modify the state of the GC
  2025. ***************
  2026. *** 111,117 ****
  2027.       PixUnion        tile;
  2028.       PixmapPtr        stipple;
  2029.       DDXPointRec        patOrg;        /* origin for (tile, stipple) */
  2030. !     FontPtr        font;
  2031.       DDXPointRec        clipOrg;
  2032.       DDXPointRec        lastWinOrg;    /* position of window
  2033. last validated */
  2034.       pointer        clientClip;
  2035. --- 111,117 ----
  2036.       PixUnion        tile;
  2037.       PixmapPtr        stipple;
  2038.       DDXPointRec        patOrg;        /* origin for (tile, stipple) */
  2039. !     EncodedFontPtr    font;
  2040.       DDXPointRec        clipOrg;
  2041.       DDXPointRec        lastWinOrg;    /* position of window
  2042. last validated */
  2043.       pointer        clientClip;
  2044. diff: /a19c/R4-tape/mit/server/include/serverfont.h: No such file or directory
  2045. *** /a19c/R4-tape/mit/server/include/os.h    Fri Jul 21 09:57:13 1989
  2046. --- server/include/os.h    Mon Sep 11 16:29:36 1989
  2047. ***************
  2048. *** 41,47 ****
  2049.   #define MAX_REQUEST_SIZE 16384
  2050.   
  2051.   typedef pointer    FID;
  2052. - typedef struct _FontPathRec *FontPathPtr;
  2053.   typedef struct _NewClientRec *NewClientPtr;
  2054.   
  2055.   #ifndef NO_ALLOCA
  2056. --- 41,46 ----
  2057. ***************
  2058. *** 104,116 ****
  2059.   char        *strcpy();
  2060.   char        *strncpy();
  2061.   Bool        CloseDownConnection();
  2062. - FontPathPtr    GetFontPath();
  2063. - FontPathPtr    ExpandFontNamePattern();
  2064. - FID        FiOpenForRead();
  2065.   void        CreateWellKnownSockets();
  2066. - int        SetDefaultFontPath();
  2067. - void        FreeFontRecord();
  2068. - int        SetFontPath();
  2069.   void        ErrorF();
  2070.   void        Error();
  2071.   void        FatalError();
  2072. --- 103,109 ----
  2073. No differences encountered
  2074. *** /a19c/R4-tape/mit/server/os/4.2bsd/Imakefile    Thu Apr 13 05:28:34 1989
  2075. --- server/os/4.2bsd/Imakefile    Mon Sep 11 16:30:33 1989
  2076. ***************
  2077. *** 21,30 ****
  2078.   #endif
  2079.   
  2080.   BOOTSTRAPCFLAGS = 
  2081. !            SRCS = WaitFor.c access.c connection.c fonttype.c io.c oscolor.c \
  2082. !                   osfonts.c osinit.c utils.c auth.c mitauth.c OtherSources
  2083. !            OBJS = WaitFor.o access.o connection.o fonttype.o io.o oscolor.o \
  2084. !                   osfonts.o osinit.o utils.o auth.o mitauth.o OtherObjects
  2085.      FONT_DEFINES = FontDefines FontFilters
  2086.       STD_DEFINES = ServerDefines
  2087.       CDEBUGFLAGS = ServerCDebugFlags
  2088. --- 21,30 ----
  2089.   #endif
  2090.   
  2091.   BOOTSTRAPCFLAGS = 
  2092. !            SRCS = WaitFor.c access.c connection.c io.c oscolor.c \
  2093. !                   osinit.c utils.c auth.c mitauth.c OtherSources
  2094. !            OBJS = WaitFor.o access.o connection.o io.o oscolor.o \
  2095. !                   osinit.o utils.o auth.o mitauth.o OtherObjects
  2096.      FONT_DEFINES = FontDefines FontFilters
  2097.       STD_DEFINES = ServerDefines
  2098.       CDEBUGFLAGS = ServerCDebugFlags
  2099. ***************
  2100. *** 85,91 ****
  2101.   
  2102.   SpecialObjectRule(osinit.o, $(ICONFIGFILES), -DADMPATH=\"$(ADMDIR)/X\%smsgs\")
  2103.   SpecialObjectRule(WaitFor.o, $(ICONFIGFILES), $(EXT_DEFINES))
  2104. - SpecialObjectRule(fonttype.o, $(ICONFIGFILES), $(FONT_DEFINES))
  2105.   
  2106.   saber_src:
  2107.       #load $(CFLAGS) -DADMPATH=\"$(ADMDIR)/X\%smsgs\" $(EXT_DEFINES) \
  2108. --- 85,90 ----
  2109. server/os/4.2bsd/connection.c
  2110. *** /tmp/,RCSt1a13230    Sat Sep 23 11:55:48 1989
  2111. --- connection.c    Fri Sep 22 11:50:50 1989
  2112. ***************
  2113. *** 76,82 ****
  2114.   
  2115.   #include <stdio.h>
  2116.   #include <sys/uio.h>
  2117. ! #include "osstruct.h"
  2118.   #include "osdep.h"
  2119.   #include "opaque.h"
  2120.   #include "dixstruct.h"
  2121. --- 76,82 ----
  2122.   
  2123.   #include <stdio.h>
  2124.   #include <sys/uio.h>
  2125. ! #include "misc.h"
  2126.   #include "osdep.h"
  2127.   #include "opaque.h"
  2128.   #include "dixstruct.h"
  2129. *** /a19c/R4-tape/mit/server/Imakefile    Wed Jul 19 18:27:35 1989
  2130. --- server/Imakefile    Thu Sep 14 14:25:26 1989
  2131. ***************
  2132. *** 9,16 ****
  2133.       CDEBUGFLAGS = ServerCDebugFlags
  2134.        EXTENSIONS = $(EXTENSIONSRC)/server/libext.a
  2135.            EXTDIR = $(EXTENSIONSRC)/server
  2136. !     FONTUTILDIR = $(FONTSRC)/mkfontdir
  2137. !        FONTUTIL = $(FONTUTILDIR)/fontdir.o
  2138.               BSD = os/4.2bsd/libos.a $(XAULIB)
  2139.           BSDEMUL = os/bsdemul/libbsdemul.a
  2140.              SYSV = os/sysV/libos.a
  2141. --- 9,20 ----
  2142.       CDEBUGFLAGS = ServerCDebugFlags
  2143.        EXTENSIONS = $(EXTENSIONSRC)/server/libext.a
  2144.            EXTDIR = $(EXTENSIONSRC)/server
  2145. !     FONTUTILDIR = $(FONTSRC)/utils
  2146. !         FONTDIR = $(FONTSRC)/lib
  2147. !        FONTLIBS = $(FONTSRC)/lib/os/libfontos.a \
  2148. !           $(FONTSRC)/lib/pcf/libpcf.a \
  2149. !           $(FONTSRC)/lib/bdf/libbdf.a \
  2150. !                   $(FONTSRC)/lib/utils/libfontutils.a
  2151.               BSD = os/4.2bsd/libos.a $(XAULIB)
  2152.           BSDEMUL = os/bsdemul/libbsdemul.a
  2153.              SYSV = os/sysV/libos.a
  2154. ***************
  2155. *** 18,24 ****
  2156.               CFB = ddx/cfb/libcfb.a
  2157.                MI = ddx/mi/libmi.a
  2158.               DIX = dix/libdix.a
  2159. !             SNF = ddx/snf/libsnf.a
  2160.            APOLLO = ddx/apollo/libapollo.a
  2161.               APC = ddx/apollo/apc/libapc.a
  2162.               SUN = ddx/sun/libsun.a
  2163. --- 22,28 ----
  2164.               CFB = ddx/cfb/libcfb.a
  2165.                MI = ddx/mi/libmi.a
  2166.               DIX = dix/libdix.a
  2167. ! #            SNF = ddx/snf/libsnf.a
  2168.            APOLLO = ddx/apollo/libapollo.a
  2169.               APC = ddx/apollo/apc/libapc.a
  2170.               SUN = ddx/sun/libsun.a
  2171. ***************
  2172. *** 152,170 ****
  2173.   /**/# qvss server
  2174.   /**/#
  2175.   #define need_dix
  2176. - #define need_ddx_snf
  2177.   #define need_ddx_mi
  2178.   #define need_ddx_mfb
  2179.   #define need_ddx_dec_lk201
  2180.   #define need_ddx_dec_qvss
  2181.   #define need_os_42bsd
  2182. ! QVSSDIRS = dix ddx/snf ddx/mi ddx/mfb ddx/dec/lk201 ddx/dec/qvss os/4.2bsd
  2183. ! QVSSOBJS = ddx/dec/qvss/init.o ddx/dec/qvss/qvss_io.o ddx/dec/lk201/lk201.o\
  2184. !     $(FONTUTIL)
  2185. ! QVSSLIBS = $(DIX) $(BSD) $(SNF) $(MFB) $(MI) $(EXTENSIONS)
  2186.   XqvssDIRS = $(QVSSDIRS)
  2187.   
  2188. ! ServerTarget(Xqvss,$(EXTDIR) $(FONTUTILDIR)
  2189. $(QVSSDIRS),$(QVSSOBJS),$(QVSSLIBS),$(SYSLIBS))
  2190.   #endif /* doqvssServer */
  2191.   
  2192.   
  2193. --- 156,172 ----
  2194.   /**/# qvss server
  2195.   /**/#
  2196.   #define need_dix
  2197.   #define need_ddx_mi
  2198.   #define need_ddx_mfb
  2199.   #define need_ddx_dec_lk201
  2200.   #define need_ddx_dec_qvss
  2201.   #define need_os_42bsd
  2202. ! QVSSDIRS = dix ddx/mi ddx/mfb ddx/dec/lk201 ddx/dec/qvss os/4.2bsd
  2203. ! QVSSOBJS = ddx/dec/qvss/init.o ddx/dec/qvss/qvss_io.o ddx/dec/lk201/lk201.o
  2204. ! QVSSLIBS = $(DIX) $(BSD) $(MFB) $(MI) $(EXTENSIONS) $(FONTLIBS)
  2205.   XqvssDIRS = $(QVSSDIRS)
  2206.   
  2207. ! ServerTarget(Xqvss,$(EXTDIR) $(FONTDIR)
  2208. $(QVSSDIRS),$(QVSSOBJS),$(QVSSLIBS),$(SYSLIBS))
  2209.   #endif /* doqvssServer */
  2210.   
  2211.   
  2212. ***************
  2213. *** 174,195 ****
  2214.   /**/# qdss server
  2215.   /**/#
  2216.   #define need_dix
  2217. - #define need_ddx_snf
  2218.   #define need_ddx_mi
  2219.   #define need_ddx_mfb
  2220.   #define need_ddx_dec_lk201
  2221.   #define need_ddx_dec_qdss
  2222.   #define need_os_42bsd
  2223. ! QDSSDIRS = dix ddx/snf ddx/mi ddx/mfb ddx/dec/lk201 ddx/dec/qdss \
  2224.              ddx/dec/qdss/libtl os/4.2bsd
  2225. ! QDSSOBJS = ddx/dec/qdss/init.o ddx/dec/qdss/qdss_io.o ddx/dec/lk201/lk201.o\
  2226. !     $(FONTUTIL)
  2227.   QDSSLIBS = ddx/dec/qdss/libqdss.a ddx/dec/qdss/libtl/libtl.a \
  2228.              ddx/dec/qdss/libqdss.a \
  2229. !            $(DIX) $(BSD) $(SNF) $(MFB) $(MI) $(EXTENSIONS)
  2230.   XqdssDIRS = $(QDSSDIRS)
  2231.   
  2232. ! ServerTarget(Xqdss,$(EXTDIR) $(FONTUTILDIR)
  2233. $(QDSSDIRS),$(QDSSOBJS),$(QDSSLIBS),$(SYSLIBS))
  2234.   #endif /* doqdssServer */
  2235.   
  2236.   #ifdef domfbpmaxServer
  2237. --- 176,195 ----
  2238.   /**/# qdss server
  2239.   /**/#
  2240.   #define need_dix
  2241.   #define need_ddx_mi
  2242.   #define need_ddx_mfb
  2243.   #define need_ddx_dec_lk201
  2244.   #define need_ddx_dec_qdss
  2245.   #define need_os_42bsd
  2246. ! QDSSDIRS = dix ddx/mi ddx/mfb ddx/dec/lk201 ddx/dec/qdss \
  2247.              ddx/dec/qdss/libtl os/4.2bsd
  2248. ! QDSSOBJS = ddx/dec/qdss/init.o ddx/dec/qdss/qdss_io.o ddx/dec/lk201/lk201.o
  2249.   QDSSLIBS = ddx/dec/qdss/libqdss.a ddx/dec/qdss/libtl/libtl.a \
  2250.              ddx/dec/qdss/libqdss.a \
  2251. !            $(DIX) $(BSD) $(MFB) $(MI) $(EXTENSIONS) $(FONTLIBS)
  2252.   XqdssDIRS = $(QDSSDIRS)
  2253.   
  2254. ! ServerTarget(Xqdss,$(EXTDIR) $(FONTDIR)
  2255. $(QDSSDIRS),$(QDSSOBJS),$(QDSSLIBS),$(SYSLIBS))
  2256.   #endif /* doqdssServer */
  2257.   
  2258.   #ifdef domfbpmaxServer
  2259. ***************
  2260. *** 197,215 ****
  2261.   /**/# mfbpmax server
  2262.   /**/#
  2263.   #define need_dix
  2264. - #define need_ddx_snf
  2265.   #define need_ddx_mi
  2266.   #define need_ddx_mfb
  2267.   #define need_ddx_dec_lk201
  2268.   #define need_ddx_dec_mfbpmax
  2269.   #define need_os_42bsd
  2270. ! PMAXMFBDIRS = dix ddx/snf ddx/mi ddx/mfb ddx/dec/lk201 ddx/dec/mfbpmax os/4.2bsd
  2271. ! PMAXMFBOBJS = ddx/dec/mfbpmax/init.o ddx/dec/mfbpmax/mfbpmax_io.o
  2272. ddx/dec/lk201/lk201.o\
  2273. !     $(FONTUTIL)
  2274. ! PMAXMFBLIBS = $(DIX) $(BSD) $(SNF) $(MFB) $(MI) $(EXTENSIONS)
  2275.   XmfbpmaxDIRS = $(PMAXMFBDIRS)
  2276.   
  2277. ! ServerTarget(Xmfbpmax,$(EXTDIR) $(FONTUTILDIR)
  2278. $(PMAXMFBDIRS),$(PMAXMFBOBJS),$(PMAXMFBLIBS),$(SYSLIBS))
  2279.   #endif /* domfbpmaxServer */
  2280.   
  2281.   #ifdef docfbpmaxServer
  2282. --- 197,213 ----
  2283.   /**/# mfbpmax server
  2284.   /**/#
  2285.   #define need_dix
  2286.   #define need_ddx_mi
  2287.   #define need_ddx_mfb
  2288.   #define need_ddx_dec_lk201
  2289.   #define need_ddx_dec_mfbpmax
  2290.   #define need_os_42bsd
  2291. ! PMAXMFBDIRS = dix ddx/mi ddx/mfb ddx/dec/lk201 ddx/dec/mfbpmax os/4.2bsd
  2292. ! PMAXMFBOBJS = ddx/dec/mfbpmax/init.o ddx/dec/mfbpmax/mfbpmax_io.o
  2293. ddx/dec/lk201/lk201.o
  2294. ! PMAXMFBLIBS = $(DIX) $(BSD) $(MFB) $(MI) $(EXTENSIONS) $(FONTLIBS)
  2295.   XmfbpmaxDIRS = $(PMAXMFBDIRS)
  2296.   
  2297. ! ServerTarget(Xmfbpmax,$(EXTDIR) $(FONTDIR)
  2298. $(PMAXMFBDIRS),$(PMAXMFBOBJS),$(PMAXMFBLIBS),$(SYSLIBS))
  2299.   #endif /* domfbpmaxServer */
  2300.   
  2301.   #ifdef docfbpmaxServer
  2302. ***************
  2303. *** 217,223 ****
  2304.   /**/# cfbpmax server
  2305.   /**/#
  2306.   #define need_dix
  2307. - #define need_ddx_snf
  2308.   #define need_ddx_mi
  2309.   #define need_ddx_mfb
  2310.   #define need_ddx_cfb
  2311. --- 215,220 ----
  2312. ***************
  2313. *** 224,236 ****
  2314.   #define need_ddx_dec_lk201
  2315.   #define need_ddx_dec_cfbpmax
  2316.   #define need_os_42bsd
  2317. ! PMAXCFBDIRS = dix ddx/snf ddx/mi ddx/mfb ddx/cfb ddx/dec/lk201
  2318. ddx/dec/cfbpmax os/4.2bsd
  2319.   PMAXCFBOBJS = ddx/dec/cfbpmax/init.o ddx/dec/cfbpmax/cfbpmax_io.o\
  2320. !     ddx/dec/cfbpmax/cfbpmaxcolor.o ddx/dec/lk201/lk201.o $(FONTUTIL)
  2321. ! PMAXCFBLIBS = $(DIX) $(BSD) $(SNF) $(CFB) $(MFB) $(MI) $(EXTENSIONS)
  2322.   XcfbpmaxDIRS = $(PMAXCFBDIRS)
  2323.   
  2324. ! ServerTarget(Xcfbpmax,$(EXTDIR) $(FONTUTILDIR)
  2325. $(PMAXCFBDIRS),$(PMAXCFBOBJS),$(PMAXCFBLIBS),$(SYSLIBS))
  2326.   #endif /* docfbpmaxServer */
  2327.   
  2328.   #ifdef dosunServer
  2329. --- 221,233 ----
  2330.   #define need_ddx_dec_lk201
  2331.   #define need_ddx_dec_cfbpmax
  2332.   #define need_os_42bsd
  2333. ! PMAXCFBDIRS = dix ddx/mi ddx/mfb ddx/cfb ddx/dec/lk201 ddx/dec/cfbpmax os/4.2bsd
  2334.   PMAXCFBOBJS = ddx/dec/cfbpmax/init.o ddx/dec/cfbpmax/cfbpmax_io.o\
  2335. !     ddx/dec/cfbpmax/cfbpmaxcolor.o ddx/dec/lk201/lk201.o
  2336. ! PMAXCFBLIBS = $(DIX) $(BSD) $(CFB) $(MFB) $(MI) $(EXTENSIONS) $(FONTLIBS)
  2337.   XcfbpmaxDIRS = $(PMAXCFBDIRS)
  2338.   
  2339. ! ServerTarget(Xcfbpmax,$(EXTDIR) $(FONTDIR)
  2340. $(PMAXCFBDIRS),$(PMAXCFBOBJS),$(PMAXCFBLIBS),$(SYSLIBS))
  2341.   #endif /* docfbpmaxServer */
  2342.   
  2343.   #ifdef dosunServer
  2344. ***************
  2345. *** 241,253 ****
  2346.   SUNWINDOWSLIBS = -lsunwindow -lpixrect
  2347.   #endif
  2348.   #define need_dix
  2349. - #define need_ddx_snf
  2350.   #define need_ddx_mi
  2351.   #define need_ddx_mfb
  2352.   #define need_ddx_cfb
  2353.   #define need_ddx_sun
  2354.   #define need_os_42bsd
  2355. ! SUNDIRS = dix ddx/snf ddx/mi ddx/mfb ddx/cfb ddx/sun os/4.2bsd
  2356.   SUNOBJS = ddx/sun/sunInit.o $(FONTUTIL)
  2357.   SUNLIBS = $(SUN) $(CFB) $(DIX) $(BSD) $(SNF) $(MFB) $(MI) $(EXTENSIONS)
  2358.   SUNSYSLIBS = $(SYSLIBS) $(SUNWINDOWSLIBS)
  2359. --- 238,249 ----
  2360.   SUNWINDOWSLIBS = -lsunwindow -lpixrect
  2361.   #endif
  2362.   #define need_dix
  2363.   #define need_ddx_mi
  2364.   #define need_ddx_mfb
  2365.   #define need_ddx_cfb
  2366.   #define need_ddx_sun
  2367.   #define need_os_42bsd
  2368. ! SUNDIRS = dix ddx/mi ddx/mfb ddx/cfb ddx/sun os/4.2bsd
  2369.   SUNOBJS = ddx/sun/sunInit.o $(FONTUTIL)
  2370.   SUNLIBS = $(SUN) $(CFB) $(DIX) $(BSD) $(SNF) $(MFB) $(MI) $(EXTENSIONS)
  2371.   SUNSYSLIBS = $(SYSLIBS) $(SUNWINDOWSLIBS)
  2372.